内存释放不了 我程序里有个窗体上东西比较多,占用内存较大,但我unload ,set nothing 以后内存并没减少,怎办 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这可能是VB的问题吧,我以前也遇过,CPU100% 不一定要窗体上的组件,你使用的所有内存都要在合适的时间释放。对于用户对象和内核对象,在不使用时一定要及时调用CloseHandle,减少引用计数,这样在该对象的引用计数减为0时,系统会把内存释放得很干净。类似的情况还有很多,楼主必须非常清楚自己所使用的每块内存的生命期。还有可以通过改变程序的实现方式来减少内存占用量,尽量减少程序依赖的DLL。比如ShellExecuteEx和CreateProcess,两个函数都可以实现启动进程,但ShellExecuteEx函数在shell32.dll里,而如果你的程序中只使用了shell32.dll中的ShellExecuteEx函数,那么装载器就得单单为了ShellExecuteEx把shell32.dll加载到内存里,这样就是浪费。而CreateProcess在kernel32.dll里,这是不就浪费内存的。任何应用都会加载这个DLL。再有就是比如像MSXML这样的组件。微软的XML解析器在解析稍大一些的XML文件时就会占用较多的内存。这些都是要考虑的。事实上,要减少内在的占用量,不仅仅是几个什么unload,set xxx = nothing 就可以解决问题的,应该从整个系统全方位的考虑。 在VB中,如何使某段代码不被用户操作打断? ADODB的问题 奇怪的问题!请大家帮忙 [忘记了基础...]给一个VB6中定义类型的缩写字符表(如整型可以用%来表示等等) 找了1天刚找到的代码,但水平低,放上来,大家一起来。 如何在vb6中实现按钮的双击事件,在线等! Accesss数据库连接的问题 请问 如何叫软件界面上的网页自动打开 连接SQL SERVER时,什么叫连接到命名实例 菜鸟求助,在VB界面可添加删除数据但SQL里没有数据显示 总是提示出错??? MSHFlexGrid的列背景颜色怎么设?不用1个1个来吧?
对于用户对象和内核对象,在不使用时一定要及时调用CloseHandle,减少引用计数,这样在该对象的引用计数减为0时,系统会把内存释放得很干净。
类似的情况还有很多,楼主必须非常清楚自己所使用的每块内存的生命期。还有可以通过改变程序的实现方式来减少内存占用量,尽量减少程序依赖的DLL。
比如ShellExecuteEx和CreateProcess,两个函数都可以实现启动进程,但ShellExecuteEx函数在shell32.dll里,而如果你的程序中只使用了shell32.dll中的ShellExecuteEx函数,那么装载器就得单单为了ShellExecuteEx把shell32.dll加载到内存里,这样就是浪费。而CreateProcess在kernel32.dll里,这是不就浪费内存的。任何应用都会加载这个DLL。再有就是比如像MSXML这样的组件。微软的XML解析器在解析稍大一些的XML文件时就会占用较多的内存。这些都是要考虑的。事实上,要减少内在的占用量,不仅仅是几个什么unload,set xxx = nothing 就可以解决问题的,应该从整个系统全方位的考虑。