【发布时间】:2013-12-26 05:20:08
【问题描述】:
我们有一个多线程的客户端 - 服务器项目,我们最近在 64 位架构上升级了服务器端应用程序。解决了很多问题,我们的应用程序现在可以在高负载下稳定运行一周。但在此期间之后,服务器上的应用程序因“内存不足”错误而崩溃。这时候空闲内存大量可用,看来是内存碎片的问题。有没有可能对内存进行碎片整理,一些工具?或者在类似情况下可能是其他一些原因“内存不足”?
内存分配:
- 内存总量:96Gb
- 物理:48Gb
- 虚拟:48Gb
- 崩溃时的可用物理内存量:3GB
- 崩溃时的可用虚拟内存量:45Gb
- 每个线程分配的最大内存大小:1GB
【问题讨论】:
-
也许您可以找到或设计一个内存管理器,在您的特定场景中不易受到碎片的影响。例如,如果每个线程都有自己的堆池,那么当线程终止时它会全部释放呢?
标签: delphi memory-management out-of-memory delphi-xe4