java 專案中記憶體溢位問題的解決

2021-07-02 05:24:52 字數 774 閱讀 7765

在做乙個資料推送端專案時,需要頻繁從資料庫裡面讀取資料,把一些靜態和動態資料定時推送給服務端。由於資料讀取非常頻繁,在推送資料的時候,出現了,非常典型的記憶體溢位問題。

通過上網檢視到一篇文章,做了下參考,如下:

1、乙個statement用了好幾個resultset修改為乙個statement 對應乙個resultset,並且用完立馬關閉resultset,和statement.

2、由於我在while迴圈裡面,建立了很多物件,並把這些物件放到了vector裡面,造成記憶體漏洞。具體**解決如下:

while (rs_buspos.next())

這裡一定要把物件設定為null.

3、在我的程式裡面,寫的有個定時器,需要定時從資料庫裡面查出資料。具體**如下:

timer.schedule(new timertask()

if (m_blstations.size() > 0)

if (m_lines.size() > 0)

initdata_static();

if (needupdatestatic()) else }

}, 1, x);

這裡一定要把vector,clear一下。

4、這一點,是要考濾到程式的效能問題,我在獲取資料的時候,呼叫了乙個方法,同時獲得靜態和動態不同的資料。不管要獲取哪種資料,都要在同乙個方法裡面,把沒用的資料也初始化獲取一下,造成了把無用的一大堆資料也都取了出來,結果,造成了記憶體溢位問題。這也違反了,我們寫**的時候,要堅持單一原則,讓乙個方法就做一件事。這裡,**不展示。

tensorflow記憶體溢位問題

tensorflow的靜態圖結構簡潔清晰,符合人的思維。雖然程式設計上略微有些複雜,但是原理很容易看懂。tensorflow分建圖過程和執行圖 張量求值 兩個階段,在這兩個階段中都可以定義操作和張量。但是有乙個非常容易犯的錯誤 把操作定義在迴圈裡面。例如下面這個例子,tf.assign操作放在了迴圈...

opencv 記憶體溢位問題

問題 1 iplimage imglp cvcreateimage cvgetsize ilipsrc ilipsrc depth,ilipsrc nchannels imglp ct.rgb2cnorm ilipsrc 這時,在rgb2cnorm函式中的返回值如果還cvcreateimage的話,...

web 應用記憶體溢位問題

現象是 web應用不能訪問,檢視tomcat日誌 permgen space的全稱是permanent generation space,是指記憶體的永久儲存區域,這塊記憶體主要是被jvm存放class和meta資訊的,class在被loader時就會被放到permgenspace中,它和存放類例項...