中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

web技術棧中的池有哪些

發布時間:2021-11-05 17:01:05 來源:億速云 閱讀:199 作者:iii 欄目:web開發

本篇內容主要講解“web技術棧中的池有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“web技術棧中的池有哪些”吧!

連接池

相信每一個程序員都不陌生,我們在使用Redis等緩存或者Mysql等數據庫的時候,就常常需要配置連接池,相信每個Java程序員都配置過C3P0或者HikariCP的連接池,為什么我們需要連接池,它有什么好處?

如果沒有連接池,當我們訪問數據庫的時候,會發生什么事情,首先我們需要建立連接把,建立連接,以為著要三次握手,這就需要花個好幾毫秒的時間,緊接著,不是每個人都能訪問數據庫吧,數據庫它也需要驗證登陸的賬戶密碼,這又要花個1,2毫秒,然后才是真正的數據查詢,可能就花了1,2毫秒,一個10毫秒的請求,可能80%的時間都浪費了。

其次,連接池可以讓服務更加穩定,舉個例子,假如下游的數據庫支持一千個并發,但是業務層支持一萬個并發,這個時候有可能會發生什么事情,業務層的一萬個請求同時請求數據庫,超過的下游系統的最大負荷,這不是把服務搞死么?連接池可以讓我們給不同的業務分配不同的連接數,讓他們的總數不會超過系統的最大值。

對象池

在Java語言中,垃圾回收是非常令人頭痛的事情,特別是FullGC總是會引發一些問題,不止是Java很多語言都有這樣的一個問題。舉個例子,假如我們開發一款游戲,士兵對象的一個實例表示一只長槍小兵,可能玩家在一把游戲中,要打死成千上百只小兵,那么每次一只小兵死亡我們就要注銷掉這個實例,每次有小兵刷新我們就重新new一個實例。大家都知道,向操作系統申請內存是有代價的,可能你是款單機游戲還好,如果是大型的網絡游戲,頁面上頻繁有各個玩家打斗發生,這個時候我們最好使用對象池技術,當小兵死亡的時候,將它回收,而不是直接釋放,下次有新的小兵出現的時候,直接復用。

對象池技術,減少了程序頻繁向操作系統申請內存,特別是大塊內存,我們更需要使用對象池技術,更好地優化內存的使用,減少垃圾回收次數,從而讓程序更加優化。

線程池

與對象池類似,我們可以理解線程也是操作系統使用的一個對象,在現代計算機開發中,多線程是非常常見且必須的,可以有效的利用到CPU多個核心的特點,但是操作系統創建線程跟銷毀線程又有一定的開銷,所以,我們可以使用池化技術,但操作系統運行完某個線程之后,不是立即銷毀,而是讓這個空閑的線程繼續等待新的任務去執行。

內存池

內存池,這個可能使用C++的同學使用的比較多,最為代表的便是由谷歌開發的TcMalloc與Facebook開發的JeMalloc。其實,Java開發中也會用到內存池,Java中有一些Unsafe的方法,可以直接管理內存,在一些中間件的開發中,我們會經常用到。

內存池較大的作用,便是減少內存碎片,什么是內存碎片?很多同學不理解什么是內存碎片,我們舉一個例子。我們得到了一塊木材,想用來做椅子,如果不對椅子每個部件需要的木材進行規劃,想用啥就在木頭上切下來,那么最終這個木頭的利用率肯定不高。內存也是如此,如果每次申請都是隨便分配,那就容易形成很多內存碎片,最后讓程序變慢。

到此,相信大家對“web技術棧中的池有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

web
AI

抚宁县| 静安区| 张家港市| 崇明县| 葵青区| 溆浦县| 三穗县| 汾阳市| 伊宁县| 祁连县| 东台市| 泰安市| 含山县| 淳安县| 南木林县| 阜阳市| 张北县| 旅游| 凤庆县| 麻城市| 元阳县| 长阳| 深泽县| 巨野县| 留坝县| 湘潭市| 株洲县| 丽江市| 濉溪县| 平阳县| 福海县| 武安市| 阿图什市| 黄平县| 克拉玛依市| 阜阳市| 佛坪县| 稷山县| 田东县| 文安县| 枝江市|