我在 CentOS 5.5 计算机上运行 ac 程序。该程序运行一个循环,一遍又一遍地执行测试,直到被外部源告知停止。
必要时,我使用旧驱动程序来与我的测试系统通信的 PCI 卡。自从从 CentOS 4.5 升级到 5.5 后,我注意到我的程序只能循环 175 次。那时程序因分配堆内存错误而停止。每次程序循环并且系统内存不足时,我可以看到内存在 10 到 20 MB 的块中使用。当我使用 Cntrl-C 退出程序时,内存立即被释放。
我使用了 Valgrind,这表明内存泄漏在旧驱动程序中。编写驱动程序的公司现在只支持 Windows,并且他们已经超过 5 年没有升级驱动程序了。
如果没有源代码,有什么方法可以在每次循环执行程序时释放驱动程序使用的内存?
谢谢。