成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

程序員如何開發(fā)高效的程序,這項(xiàng)技術(shù)值得了解

開發(fā) 前端 新聞
幾乎每一個(gè)網(wǎng)站都是這么一個(gè)設(shè)計(jì)模式,先是前端接入層,然后是一些后臺(tái)的邏輯服務(wù),最后則是數(shù)據(jù)庫。大家都知道,做一個(gè)10人能夠訪問的程序非常簡(jiǎn)單,但是要做一個(gè)能夠同時(shí)滿足1萬人,100萬人同時(shí)使用的程序,卻是非常的難。

 幾乎每一個(gè)網(wǎng)站都是這么一個(gè)設(shè)計(jì)模式,先是前端接入層,然后是一些后臺(tái)的邏輯服務(wù),最后則是數(shù)據(jù)庫。大家都知道,做一個(gè)10人能夠訪問的程序非常簡(jiǎn)單,但是要做一個(gè)能夠同時(shí)滿足1萬人,100萬人同時(shí)使用的程序,卻是非常的難。今天我們來介紹程序員高并發(fā)架構(gòu)中的池化技術(shù)。

[[285038]]

講池化技術(shù)之前,我們來講一個(gè)現(xiàn)實(shí)中的例子,相信大家都去過網(wǎng)吧吧,十幾年前,那個(gè)時(shí)候SSD的硬盤還非常昂貴,很多網(wǎng)吧都是普通的磁盤,開機(jī)非常慢,有些網(wǎng)吧為了提升用戶體驗(yàn),就會(huì)提前幫你把機(jī)器開好,那樣子你去上網(wǎng)的時(shí)候,就不需要開機(jī),直接就能上網(wǎng),這便是池化技術(shù)。早上的時(shí)候上網(wǎng)的人少些,網(wǎng)管可能只打開10臺(tái)機(jī)器,到了晚上,可能人會(huì)多些,網(wǎng)管會(huì)打開30臺(tái)機(jī)器,這便是池化技術(shù)中的池大小調(diào)節(jié)。

程序員的技術(shù)棧中有非常多的池,如線程池、連接池、對(duì)象池、內(nèi)存池,今天我們就來簡(jiǎn)單的介紹介紹,各種池。

 

連接池

相信每一個(gè)程序員都不陌生,我們?cè)谑褂肦edis等緩存或者M(jìn)ysql等數(shù)據(jù)庫的時(shí)候,就常常需要配置連接池,相信每個(gè)Java程序員都配置過C3P0或者HikariCP的連接池,為什么我們需要連接池,它有什么好處?

如果沒有連接池,當(dāng)我們?cè)L問數(shù)據(jù)庫的時(shí)候,會(huì)發(fā)生什么事情,首先我們需要建立連接把,建立連接,以為著要三次握手,這就需要花個(gè)好幾毫秒的時(shí)間,緊接著,不是每個(gè)人都能訪問數(shù)據(jù)庫吧,數(shù)據(jù)庫它也需要驗(yàn)證登陸的賬戶密碼,這又要花個(gè)1,2毫秒,然后才是真正的數(shù)據(jù)查詢,可能就花了1,2毫秒,一個(gè)10毫秒的請(qǐng)求,可能80%的時(shí)間都浪費(fèi)了。

其次,連接池可以讓服務(wù)更加穩(wěn)定,舉個(gè)例子,假如下游的數(shù)據(jù)庫支持一千個(gè)并發(fā),但是業(yè)務(wù)層支持一萬個(gè)并發(fā),這個(gè)時(shí)候有可能會(huì)發(fā)生什么事情,業(yè)務(wù)層的一萬個(gè)請(qǐng)求同時(shí)請(qǐng)求數(shù)據(jù)庫,超過的下游系統(tǒng)的最大負(fù)荷,這不是把服務(wù)搞死么?連接池可以讓我們給不同的業(yè)務(wù)分配不同的連接數(shù),讓他們的總數(shù)不會(huì)超過系統(tǒng)的最大值。

 

對(duì)象池

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

對(duì)象池技術(shù),減少了程序頻繁向操作系統(tǒng)申請(qǐng)內(nèi)存,特別是大塊內(nèi)存,我們更需要使用對(duì)象池技術(shù),更好地優(yōu)化內(nèi)存的使用,減少垃圾回收次數(shù),從而讓程序更加優(yōu)化。

線程池

與對(duì)象池類似,我們可以理解線程也是操作系統(tǒng)使用的一個(gè)對(duì)象,在現(xiàn)代計(jì)算機(jī)開發(fā)中,多線程是非常常見且必須的,可以有效的利用到CPU多個(gè)核心的特點(diǎn),但是操作系統(tǒng)創(chuàng)建線程跟銷毀線程又有一定的開銷,所以,我們可以使用池化技術(shù),但操作系統(tǒng)運(yùn)行完某個(gè)線程之后,不是立即銷毀,而是讓這個(gè)空閑的線程繼續(xù)等待新的任務(wù)去執(zhí)行。

內(nèi)存池

內(nèi)存池,這個(gè)可能使用C++的同學(xué)使用的比較多,最為代表的便是由谷歌開發(fā)的TcMalloc與Facebook開發(fā)的JeMalloc。其實(shí),Java開發(fā)中也會(huì)用到內(nèi)存池,Java中有一些Unsafe的方法,可以直接管理內(nèi)存,在一些中間件的開發(fā)中,我們會(huì)經(jīng)常用到。

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

 

總結(jié)

好了,今天我們就分享到這里,希望對(duì)你有所啟發(fā)。歡迎大家關(guān)注我,會(huì)跟大家一起學(xué)習(xí)分享計(jì)算機(jī)相關(guān)知識(shí)。大家的支持是我繼續(xù)嘮嗑的動(dòng)力。

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2018-10-09 14:34:58

開源KubernetesGit

2020-10-08 15:01:17

開發(fā)Java程序員

2014-06-05 09:23:47

程序員高效

2021-08-10 14:21:02

開發(fā)程序員工具

2024-12-13 08:02:55

大模型GPT后端

2020-03-11 09:37:48

程序員技能開發(fā)者

2013-08-20 09:33:59

程序員

2019-02-21 10:51:37

程序員技能溝通

2020-10-10 11:43:29

Java開發(fā)代碼

2015-08-13 08:56:40

高效程序員共同特征

2013-05-07 09:11:26

程序員程序員特征

2011-06-03 09:58:03

結(jié)對(duì)編程程序員

2013-06-09 09:56:35

2009-06-22 09:06:57

程序員技術(shù)升級(jí)

2011-07-19 13:27:35

2022-08-11 08:18:19

前端程序員

2015-08-11 09:20:51

初級(jí)程序員Linux命令

2012-11-14 14:18:57

程序員

2011-05-13 14:34:02

程序員

2020-02-25 22:41:41

程序員技能開發(fā)者
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产二区在线播放 | 日韩三级一区 | 精品日韩欧美一区二区 | 国产综合视频 | 538在线精品| 日韩视频中文字幕 | 亚洲毛片一区二区 | 网址黄 | 国产精品日韩一区 | 欧美自拍日韩 | 浮生影院免费观看中文版 | 久久天天躁狠狠躁夜夜躁2014 | 婷婷色在线 | 欧美黄色绿像 | 欧美中文字幕一区二区 | 狠狠操在线| 成人亚洲 | 国产视频一二三区 | 嫩草视频免费 | av天天爽| 国产精品18毛片一区二区 | 欧美精品成人一区二区三区四区 | 高清视频一区 | 99成人| 日韩欧美国产精品 | 久久久观看 | 欧美电影免费观看 | 在线一区观看 | 中国大陆高清aⅴ毛片 | 日韩精品| 日韩成人在线视频 | 中文字幕免费视频 | 欧美成人精品 | 超碰97干 | 国产福利免费视频 | 日本色综合 | 久久久999免费视频 999久久久久久久久6666 | 欧美一区二区视频 | 中文字幕日本一区二区 | 亚洲精品成人在线 | 国产成人精品免费视频大全最热 |