台灣最大程式設計社群網站
線上人數
1327
 
會員總數:240386
討論主題:186371
歡迎您免費加入會員
討論區列表 >> VB.NET >> 記憶體問題
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
記憶體問題
價值 : 50 QP  點閱數:170 回應數:15

樓主

阿當
門外漢
0 4
62 5
發送站內信

各位好,小弟最近開發自動機台的程式時,發現一個記憶體問題,機台共六隻相機,每次只要啟動時是可以正常運作的,但
隨著時間愈長,記憶體愈用愈多,最後在視覺的程式內就會出現 not enough memory for this allocation 程式內也有
將要有使用的記憶體做釋放,但情況還是沒改變,想問大家有沒有什麼方法可以去監控記憶體在哪個地方累積的,或是能提
供我一些經驗,以下是開發環境

Windows7 64bit
Visual Studio 2010
專案開發環境 .netfromark 4.0 32bit
視覺 eVision

搜尋相關Tags的文章: [ 記憶體 ] ,
本篇文章發表於2017-08-11 21:58
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

小魚
檢舉此回應
因為你沒提供程式碼,
只能用猜的,
你是不是一直New資料?
可以考慮用using之類的...

另外,
可以去工作管理員看一下你的程式是不是32位元的模式.
本篇文章回覆於2017-08-11 22:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

阿當
檢舉此回應
程式太大了, 實在不適合放上來, New和Using都有用了
是在32位元模式, 我爬一下文, 在32位元開發的軟體最多只能使用到2G的記憶體, 扣一些雜七雜八的只剩1.3G
但除了改成64位元外, 還有其它方法嗎?
本篇文章回覆於2017-08-11 23:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

小魚
檢舉此回應
其實根本沒用到那麼多,
我看記憶體也沒吃到多少就Out of memory了,
現在好像隨便都會占用很多記憶體,
我也不知道為什麼。
本篇文章回覆於2017-08-11 23:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

小魚
檢舉此回應
如果你真的那麼在意記憶體問題,
建議你可以去學C++,
.Net的底層還是微軟寫的,
微軟的程式本來就是出了名的記憶體問題很多,
C#我一直不確定他是不是真的有釋放掉記憶體,
總覺得一點點功能記憶體跟CPU使用量就不少,
C++就可以自己去配置跟釋放記憶體,
我之前寫C++用32位元的電腦就跑得動了,
不過如果要用C++你的程式就要多寫很多,
因為很多東西都要自己寫,
不像C#幫妳寫好很多東西了,
當然C++也是有很多套件的,
只是C++的套件我接觸得就比較少了。
本篇文章回覆於2017-08-12 07:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

P陳
檢舉此回應
這個問題之前碰過,那時我開資料庫連結,多用幾次就 out of memory
後來發覺是使用後沒有將 庫連結 關掉,改成每次用後就 close 該資料庫連結 ,然後沒事了
那時是 netfromark 2.0 的時代

提供參考
本篇文章回覆於2017-08-12 08:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

P陳
檢舉此回應
也許是您沒有CLOSE 就要釋放,這是不會成功回收記憶體
本篇文章回覆於2017-08-12 08:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

阿當
檢舉此回應
資料庫是有Close啦! 而且有再檢查一下, 只要有用到的物件都會將他設成null或nothing, 但情況還是一樣, 之前四支相機時就會發生了, 現在又再加兩支相機,
情況愈嚴重, 所以一直覺得和CCD取像有很大的關係

現在學C++也無法解決當務之急了
本篇文章回覆於2017-08-12 09:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

小魚
檢舉此回應
你可以去找一些系統偵測的軟體,
觀察CPU跟記憶體的使用情況,
也許能發現問題在什麼時候情況下會發生...
縮小搜尋的範圍。
本篇文章回覆於2017-08-12 12:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

阿當
檢舉此回應
那個我也觀察過了, 只看他愈來愈多, 也無法看出什麼東東
本篇文章回覆於2017-08-12 17:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

小魚
檢舉此回應
既然越來越多,
表示你一直在新增沒有釋放,
那就去看一下你一直重複在做的動作是什麼動作,
也許就能發現問題了。
本篇文章回覆於2017-08-12 20:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

誰是誰
檢舉此回應
只要自己能力不足解不開來就賴給微軟是個不錯的解法。
本篇文章回覆於2017-08-12 22:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

小魚
檢舉此回應
大大這麼專業,
請幫樓主解決問題吧。
本篇文章回覆於2017-08-13 00:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

誰是誰
檢舉此回應
從頭到尾我就沒說過自己專業。我只是鄉民來看熱鬧的。
本篇文章回覆於2017-08-13 01:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
回應

P陳
檢舉此回應
不只是 CLOSE

可能在之前或之後要作 Disconnect



本篇文章回覆於2017-08-13 09:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
回應

誰是誰
檢舉此回應
專業到都可以指出微軟哪裡有問題,這個 case 應該是小菜一碟吧。
本篇文章回覆於2017-08-13 11:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.