起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 1846|回复: 47

[结贴]怀疑平台垃圾回收机制有BUG**

[复制链接]
发表于 2007-10-10 12:23:12 | 显示全部楼层 |阅读模式
做了一个分析文本文件的程序,可是不稳定,有时候运行没问题,有时有运行运行就会出现下面的错误提示。有没有知道的?

错误栈:
错误类型:EOSError
错误信息:System Error.  Code: 6.
句柄无效。
错误描述:

环境栈:
错误类型:EOSError
无环境信息

调用栈:
回复

使用道具 举报

 楼主| 发表于 2007-10-10 12:51:57 | 显示全部楼层

怀疑平台垃圾回收机制有BUG

现象描述:
做了一个分析文本的程序,其中用到了一个大的循环,对文本数据进行分析。在建模工具中运行时有时候报错,有时候不保错;有时候运行很流畅,有时候运行到一定进度后,系统就停滞不动了,不执行任何代码,等待一定时间后系统会继续执行或者报错。其经常报的错误就是EOSError 6,句柄无效。
后来通过任务管理器发现,程序运行时,当内存增长到一定数量时,系统就停滞了,然后系统内存开始下降,当下降到一定值后,系统又开始运行,此时系统可能继续运行,也可能就报上述的错误。
因此怀疑,是不是因为系统内存到一定值后,平台开始释放内存,以便继续运行,而此时其释放机制并不安全,有事会将程序本身使用的内存释放掉了,因此报错。


请问我分析的是否正确?平台运行时的垃圾回收机制是怎样的?是否安全?

注:以上是在建模工具中运行,在Business.exe下运行并未进行测试。
回复 支持 反对

使用道具 举报

发表于 2007-10-10 13:19:46 | 显示全部楼层
我也碰到此类问题:
一个大的循环中给一个数据集赋值,当内存达到一定峰值的时候,客户端停止响应,系统内存开始减少,但减少的速度很慢,怀疑与平台的垃圾回收有关,请问:
是否可以由用户确定何时进行垃圾回收?
垃圾回收是否安全?是否会把我们还在用的资源给回收了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-10 13:27:11 | 显示全部楼层
在运行期又测试了一下,好像没什么问题。发现运行期其内存释放速度很快,到达一定值后,接着就会释放几十M的内存,程序停顿时间很短暂。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-10 13:59:22 | 显示全部楼层
顶一下!
回复 支持 反对

使用道具 举报

发表于 2007-10-10 14:02:21 | 显示全部楼层
关于system error可以参考这个:
http://bbs.justep.com/forum.php?mod=viewthread&tid=16412
回复 支持 反对

使用道具 举报

发表于 2007-10-10 14:27:43 | 显示全部楼层
6
The handle is invalid.
ERROR_INVALID_HANDLE
System   Error   Code:6句柄无效

好像是你的程序中用到了句柄,而且是关闭了句柄以后又用它,造成这个错误
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-10 14:29:57 | 显示全部楼层
没有啊,没有用什么句柄。就是对字符串的一个处理。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-10 14:31:33 | 显示全部楼层
别沉啊,再顶。
运行了几次,发现有时会弹出“获取Config配置信息错误,无法与服务器建立连接”,但不影响系统的运行。
回复 支持 反对

使用道具 举报

发表于 2007-10-10 14:32:10 | 显示全部楼层
怀疑是你的代码有问题,可以用delphi试一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-28 20:29 , Processed in 0.043043 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表