<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)  編輯  收藏 所屬分類: 我愛內存泄露

    主站蜘蛛池模板: 国外成人免费高清激情视频| 99视频在线免费| 免费观看国产精品| WWW国产亚洲精品久久麻豆| 大学生美女毛片免费视频| 亚洲欧美乱色情图片| 日本一道本高清免费| 美女视频黄频a免费观看| 亚洲精品和日本精品| 国产精品成人69XXX免费视频| 精品亚洲一区二区三区在线观看| xxxxx做受大片视频免费| 日本亚洲欧洲免费天堂午夜看片女人员| 国产免费人成视频在线播放播| 久久精品国产精品亚洲精品 | 日本视频一区在线观看免费| 亚洲精品在线电影| 成人免费网站在线观看| 美女视频黄a视频全免费网站色 | 亚洲欧洲无码AV电影在线观看| 日韩免费视频一区二区| 亚洲欧洲自拍拍偷午夜色| 免费看片A级毛片免费看| 青娱乐在线免费观看视频| 亚洲av中文无码乱人伦在线播放 | 特级毛片全部免费播放a一级| 国产亚洲情侣一区二区无| 一区二区三区观看免费中文视频在线播放 | 国产一级a毛一级a看免费视频| 亚洲视频在线一区| 成人免费在线观看网站| yellow免费网站| 亚洲娇小性色xxxx| 亚洲中久无码不卡永久在线观看| 免费国产黄网站在线观看可以下载 | 亚洲精品成人片在线观看精品字幕| 免费国产黄网站在线观看可以下载| 亚洲色大网站WWW永久网站| 国产亚洲日韩在线三区| 无码人妻久久一区二区三区免费丨 | jizz在线免费播放|