简化研究人员的算法测试。

时间:2009-05-17 22:51:59

标签: c++ scripting real-time

我在一个研究开发和完整运输代码的大型团队中工作。

我开发在我们的实时系统上运行的流程的一半时间(介于软实时和硬实时,中等实时?)

另一半我为研究人员编写或优化过程,他们根本不关心代码。

目前我正在研究一个我必须分成两个不同分支的过程。

有一个研究版本,一个生产版本需要偶尔与研究代码合并,以获得最新和最好的生产。

要测试这些过程,您需要设置一个半复杂的测试环境,将我们分析的数据在正确的时间(实时系统)发送到流程。

我在考虑如何制作:

  1. 实施
  2. 测试
  3. GOTO#1
  4. 为同事尽可能轻松,快速,无痛地骑行。

    我的一个想法是在这些长时间运行的流程中嵌入脚本语言。 因此,当流程运行时,他们可以调整实际的算法&它的参数。

    关闭蝙蝠我看了嵌入:

    这些似乎都可行,实际上可能完全解决了给定的问题。

    还有其他好主意吗?

    在1-2行更改后重新编译,重新部署到测试环境并重新启动只是糟透了。

    这个系统相当复杂,希望我能够很好地解释它。

4 个答案:

答案 0 :(得分:2)

如果您可以通过脚本更改足够的程序以实现有用,而无需完全重新编译,那么您应该考虑将系统分解为更小的部分。你可以有一个处理数据加载等的“服务器”,然后是执行实际处理的客户端代码。每次系统加载新数据时,它都可以检查并查看客户端代码是否已经重新编译,然后在这种情况下使用它。

我认为这里会有一些优点,其中最大的优点是整个系统的复杂程度要低得多。现在你用一种语言而不是两种语言工作。当人们从头脑中从python或lua模式转换到c ++模式时,人们可能会把事情搞得一团糟。通过在系统中嵌入其他语言,您也有可能变得依赖它。如果你使用python或lua来调试程序,那么这些语言要么在部署时成为依赖项,要么需要将内容反馈给C ++。如果你选择将东西移植到C ++,那么在切换过程中会出现错误的另一个机会。

答案 1 :(得分:1)

嵌入Lua比嵌入Python容易得多。

  • Lua从一开始就被设计为嵌入式; Python的嵌入性是在事后嫁接的。

  • Lua比Python小20倍,简单。

您对构建过程没有太多说明,但使用非常强大的make版本可以大大简化构建和测试。我使用Andrew Hume的mk,但你可能会更好地投入时间来掌握Glenn Fowler的nmake,它可以动态添加依赖项,并且无需单独的配置步骤。我通常不推荐使用nmake,因为它有点复杂,但很明显Fowler和他的团队已经为批量扩展和可移植性问题构建了nmake解决方案。对于您的特殊情况,掌握它可能是值得的。

答案 2 :(得分:0)

不确定我是否了解您的系统,但如果构建和部署过于复杂,您可以将其自动化吗?如果部署是完全自动的,那会解决问题吗?

我不明白脚本语言如何解决问题?如果更改算法,仍然需要从头开始重新计算,不是吗?

答案 3 :(得分:0)

听起来你需要的是CruiseControl或类似的东西;每当hyou触摸基线代码时,它都会重建并重新运行测试。

相关问题