多次运行后C程序性能折旧

时间:2014-07-21 13:06:49

标签: python c performance testing memory-leaks

为了正确测试我一直在研究的软件(用C语言编写),我必须进行大量的测试。我一直在使用python脚本执行此操作,该脚本执行我的软件一定次数(通常在1000 - 10000次重复范围内),一个接一个地执行。我正在使用debian虚拟机(500mb ram)。我一直注意到,随着时间的推移,该计划的表现显着下降。通常我必须重新启动虚拟机以恢复正常的性能水平。

我的第一个想法是内存泄漏,但是valgrind在我的C程序中没有发现任何内容。此外,我认为操作系统会在程序终止后以任何方式处理。当我运行top或free -m时,我发现自由ram相当低(20-70mb),但在运行我的脚本时不会下降太多,而是在它开始的地方波动。

编辑:我的文件正在执行的完整纲要如下:

C软件

  • 许多由不同人开发的文件
  • 提供一个循环,一直持续到发现给定的目标IP
  • 根据给定目的地构造数据包和从先前发送的数据包接收的信息
  • 发送数据包
  • 等待数据包回复

模拟网络拓扑的Python脚本

  • 存储虚假网络
  • 拦截传出的数据包并根据所述拓扑发送回复

Python测试脚本

  • 对于给定次数的重复,
  • 启动网络模拟器
  • 启动C软件(等到终止 - 进程启动实际上是使用bash脚本完成的)
  • 退出网络模拟器

仿真器和c软件的输出都被转储到日志文件中,每次执行时都会被覆盖(所以它们应该保持相当短的时间)。

任何人都可以给我一些关于这可能是什么的指示吗?

1 个答案:

答案 0 :(得分:1)

这可能是:

  • python脚本中的一些泄漏
  • 在c脚本/ python脚本中等待资源
  • 写入在运行期间变大的文件
  • C软件无法正常关闭

等等。您可以详细说明C软件的作用,以便为我们提供更多线索,并说明其他软件是否也运行得更慢。