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

    主站蜘蛛池模板: 日本高清免费不卡在线| 亚洲综合国产一区二区三区| 国产精品亚洲lv粉色| 亚洲桃色AV无码| 永久免费的网站在线观看| 免费看又黄又爽又猛的视频软件| 无码欧精品亚洲日韩一区| 日韩成全视频观看免费观看高清| 91免费在线视频| 色偷偷尼玛图亚洲综合| 亚洲伊人tv综合网色| 一区国严二区亚洲三区| 91av免费观看| 一级毛片在播放免费| 亚洲入口无毒网址你懂的| 亚洲区小说区激情区图片区| 青娱分类视频精品免费2| 精品国产福利尤物免费| 亚洲人成未满十八禁网站| 亚洲va中文字幕无码久久| www国产亚洲精品久久久| 曰批视频免费30分钟成人| 国产黄在线播放免费观看| 亚洲欧美国产欧美色欲| 亚洲午夜精品久久久久久人妖| 免费一级一片一毛片| 无码国产精品一区二区免费| 免费在线看黄网站| 九九免费观看全部免费视频| 亚洲中文字幕无码mv| 亚洲精品视频免费在线观看| 亚洲日韩v无码中文字幕| 国产一精品一aⅴ一免费| 99久久久精品免费观看国产 | 亚洲aⅴ天堂av天堂无码麻豆 | 亚洲AV综合色区无码二区爱AV| 亚洲va在线va天堂va888www| 亚洲第一区精品日韩在线播放| 国产片免费福利片永久| 无人在线观看免费高清视频| 最近2019中文字幕免费直播|