|
|
1
33
I reported this issue to Embarcadero ( saved in Wayback Machine )因为这让我很伤心。
您将看到以下项目的负载:
基本上,由于您在请求另一个windows消息ID时不能注册超过0xFFFF的不同windows消息ID,因此系统将返回“ 系统错误。代码:8。存储空间不足,无法处理此命令 Another issue ( saved in Wayback Machine )在Embarcadero QC Central报告。 此问题在Windows 7/Windows Server 2008下出现。事实上,在WindowsServer2003上以及它以前运行是因为一个错误的实现,该实现在原子的索引达到最大16384个单位时会回收原子。 Global Atom Monitor 检查您的Delphi应用程序是否泄漏原子。 |
|
2
29
有一个注册表项可以增加,以提高XP的堆大小。对于Vista,Microsoft已将默认值设置得更高。我建议将默认的3072更改为至少8192。 MS Knowledge Base (或搜索“内存不足”)。有关参数值的更多详细信息,请参阅第条 KB184802 . 我建议您阅读knowledgebase文章,但有关更改的基本信息如下:
祝你好运 |
|
|
3
24
我已经搜索了2年,感谢 Jordi Corbilla answer 我终于明白了! 简言之: Delphi源代码中有导致此问题的bug! 让我们了解发生了什么: see more ). 此外,Windows还有另一个“存储区”,称为“窗口消息系统”,用于相同的目的( see more ). 去除 atom,通过使用以下Windows API:
在第二个“区域”,我们只是 无法删除 任何东西
Delphi编译的应用程序(至少由D7编写)将在“消息传递区域”中放置一条记录,在“Atom表”中放置一些其他记录 每次启动时 . 应用程序试图在应用程序关闭时删除它们,但我发现很多(而且很多)“atom泄漏”,即使在应用程序关闭后也是如此。
那么,我们能做些什么呢?我的朋友,很抱歉告诉你,我们需要修复Delphi源代码并重新编译所有应用程序。 首先,打开unit Controls.pas并更换以下行:
用于:
然后重新编译Delphi包和应用程序。 由于我发现即使在应用程序关闭后原子仍会泄漏,所以我创建了一个应用程序,该应用程序可以垃圾收集任何留下的原子。它每小时只运行以下代码:
从那以后,我再也没有犯过这样的错误! 最新更新: |
|
|
4
2
您可以使用Microsoft的桌面堆监视器查看堆统计信息(使用%etc),可从以下网站获得: |
|
|
5
2
我最近在使用Twain代码时注意到了这个错误(系统错误。代码:8。存储空间不足…),它发生在我的电脑上,而不是我同事的电脑上,我们机器之间唯一的真正区别是我使用笔记本电脑屏幕作为第二个显示器,因此我的桌面总尺寸更大。 我找到了上面Steve Black指出的问题的文档,但我找到了一种不需要编辑注册表的方法(至少修复了我机器上的错误):
我发现用这个替换它可以消除我的错误
|
|
|
6
1
编译器中可能有bug,很可能是应用程序中的某些东西导致了问题。可能是你的应用程序正在泄漏窗口句柄或其他GUI对象,如笔/刷子?这可能是一个原因。 |
|
|
7
0
对我来说,这只是一堆TJPEG图像以幻灯片放映的方式解压缩,最终耗尽了内存。 |
|
0___________ · 我可以在整个程序生命周期内保持句柄打开吗 2 年前 |