CnPack Forum


 
Subject: 清理引用单元的问题
sonicer
新警察
Rank: 1


UID 677
Digest Posts 0
Credits 48
Posts 18
点点分 48
Reading Access 10
Registered 2005-2-1
Status Offline
Post at 2011-10-17 10:46  Profile | Blog | P.M. 
清理引用单元的问题

D7
项目引用的单元大约在600多个(DPR文件中),是个维护多年的项目了,反复打补丁,增加单元,多人接手,所以导致单元文件比较多,(不知道别的项目,但这个差不多是我接触的最多单元的项目了)
打算使用CNPACK里的清理引用单元功能,似乎会先编译一次,然后漫长的等待,直接报错,一开始是大致说程序使用完了系统允许的句柄之类的,后来直接报一般性程序错误,反正就是普通的程序死掉,要不要汇报错误啥的,然后IDE直接挂掉,进程里也没有Delphi32.exe了,
我打开任务管理器,再次使用清理引用单元功能,发现DELPHI32进程使用到的GDI对象增长很快,但在我的机器上增长了大约4700个时,就基本停止,然后IDE没有反应,再然后就报程序错误,然后IDE退出。

不知道是不是因为单元太多,以致无法处理。
我采用分批打开单元方式,清单功能就可以使用了。

没别的意思,就是汇报一下我的情况,如果有朋友有类似的问题也作个参考

说实话,600多个单元的项目算不算多(我承认在架构上有问题,以及多年积累下来,再加上多人接手,不敢乱动历史代码,造成单元数量不少,另外,里边已经有许多功能不再使用,但暂时没空清理)

有没有朋友说说自己接触到单元最多的项目?
Top
zjy
管理员
Rank: 9Rank: 9Rank: 9



UID 2
Digest Posts 6
Credits 2385
Posts 1543
点点分 2385
Reading Access 102
Registered 2002-12-16
Location China
Status Offline
Post at 2011-10-17 13:46  Profile | Site | Blog | P.M. 
600个,不算少了

针对这种特别大的项目,清理引用之类的功能,基本上都是用分批处理来做的。

以前测试过,即便不加载CW,在IDE中同时打开足够多的单元和窗体,IDE就会耗尽资源而挂掉。

清理引用之类的操作,因为可能会修改源代码,所以没有做成清理完就把单元关闭的方式(让用户来决定是否保存),这样特别大的项目难免会有这样的问题。




Zhou JingYu
CnPack Administrator
http://www.cnpack.org/
Top
 




All times are GMT++8, the time now is 2024-6-17 06:33

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.008094 second(s), 7 queries , Gzip enabled

Clear Cookies - Contact Us - CnPack Website - Archiver - WAP