2011-03-25 59 views
1

在我的项目文件上花费了一个星期的时间使用FastMM后,我现在完全通过了我的程序,并且据我所知除去FastMM497引发的所有错误信息。现在,我想从我的程序中移除FastMM并在没有它的情况下运行。 我可以这样做吗?如果我删除它并运行我的程序,我的程序是否会开始泄漏内存?据我所知,我已经删除并将我的项目选项设置改回原来的样子。如何从我的项目文件中删除FastMM497?

但是,我确实注意到当我运行可执行文件时,我的程序更大。最初,我的程序启动时大约在5,000KB到6,000KB之间。在完成FastMM后,现在在任务管理器中大约有21,000KB。我正确看着这个吗?

我可以在我的程序中保留FastMM497并将它部署到我的用户吗?

回答

7

嗯,我想你应该离开FastMM的完整版本,因为大概你会继续开发你的程序,你可能会无意中引入更多的内存泄漏。让FastMM告诉你这些帮助。

但是,你不想做的是向用户发布使用FastMM调试选项的版本。这会慢得多,会消耗更多的内存,并且还会报告您大概不希望用户看到的诊断信息。

通常情况下会有两种构建配置DEBUG和RELEASE。当你建立DEBUG时,你有所有的诊断选项。当您构建RELEASE时,您可以将其全部切换。通常通过条件定义FastMM包含文件FastMMOptions.inc中的哪些控制设置来配置它。

我配置它的方式是DEBUG配置定义了一个名为UseDebugFastMM的条件,而RELEASE配置没有。然后在FastMMOptions.inc中,我通过启用所有调试功能(如果已定义)来响应该条件。

说了这么多,我实际发布给我的客户端根本不使用FastMM,因为我发现它在线程争用情况下表现不好。相反,我使用的是一个自定义内存管理器,只需要将malloc()委托给msvcrt.dll即可发现它的性能更好。但是它都是用条件控制的,而且很值得让项目配置好,这样你就可以轻松地进行实验了,如果你需要的话。

+0

打我几秒钟。 :) +1 – 2011-03-25 20:18:15

+0

我明白了。谢谢... – ThN 2011-03-25 21:03:57