<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    PS,1880后程序員

    看不完的牙,寫不完的程序,跑不完的步。
    隨筆 - 97, 文章 - 34, 評論 - 10, 引用 - 0
    數據加載中……

    內存泄漏 - 開篇 數據庫應用

    最近都在讀那個該死的豬小弟寫的代碼,原因還不是因為壓力測試后,發現TMD的內存泄漏啦!
    邊看代碼邊在心中鄙視這個豬小弟,該死的豬小弟,說你比豬笨,豬覺得這是對自己的侮辱都不樂意,
    很多心得哦,慢慢整理出來。
    先說說JDBC吧。
    不關閉Connection
    這是最常見的錯誤,數據庫增刪改操作后,沒有關閉數據庫連接,導致占用大量內存,如果是用連接池,那么系統很快就木有可用的數據庫連接了;如果是直接連接數據庫,很快系統內存就耗盡了,要知道數據庫連接很費資源的,否則要連接池干嗎?而且這種錯誤很難查,一個系統上百個DB操作,就一個沒關閉,慘了!
    不關閉Statement,ResultSet
    這是另一種錯誤,數據庫連接關閉了,但是Statement,ResultSet沒關閉。誰說的關閉了數據庫連接其它就不用關閉的。只關閉連接,那些Statement,ResultSet就如同孤墳野鬼一樣占據你的Heap,而且還是陰魂不散的說,最后系統耗盡內存氣絕身亡。
    頻繁數據庫連接
    大多數業務系統,一個業務操作可能會關聯多張表的增刪改。麻煩不要每操作一張表,就請求一次數據庫連接。麻煩把請求數據庫連接看做是請你學妹吃飯好不好,小學妹很矜持,請一次也不容易。這樣想,你請求數據庫連接時,就會謹慎些,盡可能一次數據庫連接,對多張表進行操作。
    經驗
    不要把代碼寫成connection.close(); 或者 datasource.getConnection();把他們都封裝到工具類里面,這樣測試的時候加進去debug代碼,很容易就找到那個該死的連接沒有關閉了。Statement, ResultSet也是這樣。

    最后,豬小弟是誰?
    呵呵,豬小弟是5年前的我,或者是8年前的我。當年,年幼無知,無知者無畏,犯下無數的錯誤,感謝老板,感謝客戶,你們太有犧牲精神了。

    posted on 2013-01-18 11:14 amenglai 閱讀(258) 評論(0)  編輯  收藏 所屬分類: 我愛內存泄露

    主站蜘蛛池模板: 亚洲精品国产摄像头| 久久夜色精品国产亚洲av| 亚洲精品自产拍在线观看动漫| 四虎影视久久久免费 | 亚洲视频在线观看免费| 亚洲人成人无码网www国产| 美女尿口扒开图片免费| 免费吃奶摸下激烈视频| 污污污视频在线免费观看| 亚洲国产V高清在线观看| 五级黄18以上免费看| 亚洲精品自产拍在线观看| 免费无码又爽又刺激网站| 久久av无码专区亚洲av桃花岛 | 国产成人精品久久免费动漫| 亚洲日本国产精华液| 成年免费大片黄在线观看岛国| 亚洲熟妇AV乱码在线观看| 毛片a级毛片免费观看品善网| 亚洲精品精华液一区二区| 吃奶摸下高潮60分钟免费视频| 国产成人综合亚洲一区| 国产L精品国产亚洲区久久| 热久久这里是精品6免费观看| 亚洲成在人天堂一区二区| 国语成本人片免费av无码| 精品久久亚洲一级α| 国产亚洲精AA在线观看SEE| 国产乱人免费视频| 亚洲成人动漫在线| 免费国产作爱视频网站| 国产精品亚洲一区二区无码| 91麻豆精品国产自产在线观看亚洲 | 亚洲国产精品成人综合色在线婷婷| 国产电影午夜成年免费视频| 精品无码专区亚洲| 亚洲AV午夜成人影院老师机影院| 欧洲黑大粗无码免费| 国产VA免费精品高清在线| 亚洲最大在线观看| 久久精品国产精品亚洲人人|