我写了一个注定要在Solaris SPARC系统上的C应用程序。 然而,我的大部分开发已经在我的Mint Linux 64位机器上。
我已经看到我有一个小内存泄漏,并已在Linux上使用Valgrind检查出来。
我的问题是:如果我在Linux上运行Valgrind,并使所有的内存泄漏的东西100%(或至less接近),如果我可以在Solaris上编译的应用程序,这意味着它也应该performance一样(这意味着我不必使用Solaris特定的内存泄漏检测工具?)
我想问的原因是我没有足够的时间去学习每个平台的所有分析工具…..我希望如果Valgrind告诉我要修复某些修复程序也能在Solaris上工作的东西?
我知道在Linux和Solaris之间的内存pipe理将是完全不同的,但是在内存泄漏检测方面肯定会是一样的?
任何意见/帮助将不胜感激;-)
林顿
一般来说,如果两个系统上的代码执行路径是相同的,并且你清理内存泄漏,那么是的,它也会在另一个系统上清除它们。
虽然机器之间的事情有所不同,但并不那么直截了当。 EG,它试图在Linux系统上做一件事情,在solaris系统上做另一件事情。
Valgrind是一个很好的工具,最好的办法是在linux上试一下,看看它是否也清理了solaris上的泄漏(用ps或者其他工具,列出solaris下的内存大小,并确保它不会在那里增加)。