為了方便各位前輩們看,我就長話短說了
我寫了一個小程式 在VB中除錯的時候僅有100k左右的記憶體占用
可是生成EXE以后運行 記憶體占用 達到2000之多,請問這是為什么??
如何可以解決這一問題。謝謝前輩們!
uj5u.com熱心網友回復:
如果你程式的退出代碼用的是End ,有可能會出現你這種情況,End雖然也是代表程式結束,但是并不會從記憶體中釋放資源..如果你程式的退出代碼用的是 Unload Me,就不一樣了,Unload Me 是程式退出并且從記憶體中釋放資源..
另外檢查一下:
最后關閉視窗的時候把打開的檔案也關閉了嗎??
uj5u.com熱心網友回復:
2M記憶體不多啊,隨便加載一點圖片,檔案之類的很容易就達到2M了,如果頻繁使用記憶體而有沒有及時釋放(好像也有及時釋放也不管用的),記憶體會節節攀升的......uj5u.com熱心網友回復:
“小”到什么程度?2000K也才2M,這個應該是包括VMM在內的,
基本上是正常現象。
在IDE中運行,類似于在VB6的“關照”下運行,
是解釋方式的,這個記憶體占用肯定還沒有算入VMM的。
只要你的程式在運行程序中,
記憶體占用沒有“不斷的增加”,
(本來就在不停的擴充資料記憶體的除外)
基本上可以認為沒什么問題。
uj5u.com熱心網友回復:
我找了一個以前寫的成品程式除錯的時候 大概是2000K左右
可是生成exe的時候 記憶體卻達到了6000~8000的驚人占用率
為什么除錯跟生成exe差距如此之大呢
uj5u.com熱心網友回復:
它的記憶體占用率是一直在攀升。電腦管家的記憶體測驗 由原來的45%可以攀升到70%左右請問問題出在哪里,為什么會一直增長,
我使用的變數都是陣列,也寫了釋放的部分,控制元件用的也是控制元件組
可是搞不明白 為什么差距會這么大。
uj5u.com熱心網友回復:
記憶體在任務管理器中最多大概是在8000k左右比這個軟體占用更大記憶體的程式也有,可是很明顯開啟軟體后
記憶體飆升,系統操作變緩慢,這到底是什么原因,
uj5u.com熱心網友回復:
可能是代碼邏輯問題,造成申請的內在未能及釋放。
即使在頻繁的 申請&釋放,正常情況下也是有一定的增長后,就停止增長。
uj5u.com熱心網友回復:
如果記憶體始終在上升,就是有記憶體泄漏。可能
A)呼叫外部資源沒有釋放。
B)VB物件回圈參考時不會自動釋放(看 VB 幫助中的 回圈參考 索引)
詳細參考 《高級Visual Basic編程(Advanced Visual Basic)》 第六章 回圈參考
uj5u.com熱心網友回復:
下載學習之!
uj5u.com熱心網友回復:
一些記憶體沒有被釋放(比如:不用的表單沒有unload,Timer在運行等)。如果要知道具體原因,最好把程式掛到網上,便于查找原因。
uj5u.com熱心網友回復:
好東東,我也下了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/113901.html
標籤:VB基礎類
