`
neo
  • 浏览: 265561 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Delphi应用程序的内存泄露

阅读更多

内存泄漏测试及修复的技巧:(翻译自MemProof帮助的部分内容,翻译得不好,请大家来信指导)

The following are a couple of tips that can be usefull when fixing leaks  in an application :

下面的这些技巧对于修复应用程序的内存泄漏非常有用:

* First just launch the app and then close it. If even this action generates leaks, fix those leaks first. Only after the main leaks are fixed, you should go into specific functionality areas of the application.

*首先,运行应用程序然后马上退出。如果这样操作也产生内存泄漏,先修复这些漏洞。只有先修复这些主要的泄漏,你才能进行特定功能的测试。

* In your Delphi/C++Builder project options, remove as much forms as possible from the Auto-Create option. Create your forms dynamically.

*在你的delphi/C++Builder工程选项中,尽可能地不要使用自动创建窗体,你需要时再动态创建。这点非常重要,自动创建窗体,基本上都会造成未知的内存泄露。


* 注意在循环中创建或分配的内存的代码。如果它们未释放,可能引起大量的内存泄漏。

* Go for the biggest classes first - if you see a TMyFom <class> leaking, try to fix this one first instead of going after a tiny TFont class. Since a Form will usually contain a lot of other classes, with one shot you will have fixed a lot of contained leaks.

*先修复大的类,比如你看到TMyFom 类有泄漏,先解决它的问题,然后再解决像TFont 这样的小类。一个form类经常包含多个子类。修复一个form的未释放问题,你将解决大量该form包含的子对象未释的问题。

* Go for the easy fixes first. Some leaks fixes are very easy and obvious - if you fix the easy ones first, you will keep them out of your way.

*首先修复容易修复的漏洞。一些泄漏是非常容易被发现的,如果你先修复他们,你就不用老想着他们了。

 

 
分享到:
评论

相关推荐

    Delphi new\dispose内存泄露问题解决方案

    在Delphi编程中,内存管理是一项至关重要的任务,因为它直接影响到程序的稳定性和资源效率。当我们谈论"Delphi new\dispose内存泄露问题解决方案...记住,良好的内存管理是编写高质量、可持续的Delphi应用程序的基础。

    CheckMen 测试 Delphi内存泄漏工具

    CheckMen是一款专为Delphi开发者设计的内存泄漏检测工具,其核心组件是`CheckMem.pas`单元。这个工具的目的是帮助程序员在...结合良好的编程习惯和适当的测试覆盖率工具,可以显著提高Delphi应用程序的稳定性和可靠性。

    delphi内存泄露查找工具之MemProof

    内存泄露是指程序在申请内存后,无法释放已不再使用的内存空间,随着时间的推移,这些未释放的内存会逐渐积累,导致应用程序消耗的内存持续增加,最终可能导致系统性能下降,甚至崩溃。因此,开发过程中有效地检测和...

    delphi内存泄漏检测工具FastMM4991.zip

    FastMM4是一个强大的内存管理工具,特别适合用于检测Delphi应用程序中的内存泄漏。这个工具不仅免费,而且功能强大,能够帮助开发者精确定位到引发内存泄漏的代码行。 FastMM4的设计目标是提供一个比Delphi自带的...

    简单的delphi内存池

    在编程领域,内存管理是优化程序性能的关键环节。Delphi作为一个强大的面向对象的 Pascal 编程语言,提供了丰富的内存管理工具...理解内存池的工作机制以及如何在Delphi中实现它,是提升Delphi应用程序性能的重要步骤。

    log4Delphi 0.7 无内存泄露版

    在版本0.7中,log4Delphi被发现存在内存泄露的问题,这可能会影响程序的性能和稳定性,特别是在长时间运行或者处理大量数据的应用中。内存泄露会导致系统资源逐渐消耗殆尽,可能导致程序崩溃或系统变慢。为了解决这...

    Delphi使用SQLite3内存数据库

    SQLite3是一种轻量级、自包含的数据库引擎,它不需要独立的服务器进程,使得在Delphi应用程序中集成非常方便。本文将主要关注以下几个方面: 1. **SQLite3简介** SQLite3是一种开源的SQL数据库,它被广泛应用于...

    delphi设计的内存中运行程序

    `Demo`可能是一个演示如何在内存中运行程序的示例应用程序,而`Unit`文件则包含了具体的实现细节。 总之,通过掌握Delphi的内存管理、PE文件格式、动态加载和执行等技术,我们可以设计出在内存中运行的程序,从而...

    使用delphi编写进程间内存共享的例子

    在编程领域,进程间通信(IPC,Inter-Process Communication)是一项关键的技术,它允许不同的进程...通过学习和理解这段代码,开发者可以掌握如何在自己的应用程序中运用类似的技术,提升多进程环境下的数据交互性能。

    CheckMem.pas

     这是一篇介绍如何使用CheckMem.pas单元检查delphi应用程序内存泄漏的文章 作者:999roseto347(fdaf at 163 dot com) 版本:V1.0 创建日期:2004-06-11 目录: 一、使用步骤 二、报告解读 三、测试...

    delphi里的内存管理器操作指南

    通过理解Delphi内存管理器的实现机制及其与操作系统内存管理的关系,开发者可以更好地控制应用程序的内存使用,从而提高整体性能和稳定性。此外,合理选择和定制内存管理器也是提升程序性能的有效途径之一。

    Delphi枚举指定程序的内存堆..rar

    本资源“Delphi枚举指定程序的内存堆”显然聚焦于如何使用Delphi来探索和分析运行中的应用程序的内存结构。在Windows操作系统中,程序的内存管理涉及到堆、栈等内存区域,其中堆是程序员动态分配内存的地方。本文将...

    Delphi7程序设计技巧与实例

    Delphi7是Borland公司开发的一款快速应用程序开发工具,它使用的是Object Pascal语言。Delphi7因其开发效率高、功能强大和易于使用等特点,至今仍被许多开发者使用。以下将从Delphi7的特点、程序设计技巧和实例三个...

    Get-Memory-Information.rar_delphi GetMemory(_delphi 内存_delphi 内存

    通过以上方法,开发者可以在Delphi应用程序中获取到详尽的内存信息,从而更好地监控和优化程序的内存使用,提升软件性能。同时,理解这些概念也有助于编写更健壮、更高效的代码,避免潜在的内存问题。

    Delphi5程序设计与控件参考

    Delphi5是Borland公司推出的一款强大的面向对象的可视化编程工具,它基于Windows平台,采用Object Pascal语言,具有高效的编译器和丰富的类库,使得开发人员能够快速构建功能丰富的桌面应用程序。 在本书中,你将...

    几个DELPHI高级程序设计实例..rar

    以上是Delphi高级程序设计的一些关键点,通过学习和实践这些实例,开发者不仅可以提升自己的编程技能,还能更好地理解和应用这些技术,创造出更加高效、健壮的Delphi应用程序。在codefans.net中,你可能会找到更多的...

    delphi内存分配完全总结

    ### Delphi内存分配完全总结 #### 一、引言 Delphi作为一种强大的...通过合理利用Delphi提供的各种内存管理函数,不仅可以提高程序的性能,还能有效避免内存泄漏等问题。希望本文能为Delphi开发者提供有价值的参考。

    DLL封装应用程序的资源-Delphi

    本教程将重点讲解如何在Delphi中将应用程序的资源封装到DLL文件中,以实现更高效、灵活的资源共享。 首先,理解DLL的基本原理至关重要。DLL文件可以视为一种模块,它包含可执行代码和数据,这些代码和数据可以在...

    DELPHI判断程序是否无响应源码

    在DELPHI编程环境中,有时候我们需要检测应用程序是否已经无响应,以便进行相应的处理,比如提示用户或者自动恢复。"DELPHI判断程序是否无响应源码"是一个实用的工具,可以确保程序运行的稳定性,避免因为卡死或冻结...

Global site tag (gtag.js) - Google Analytics