摘要:一直以為的數(shù)組更節(jié)省內(nèi)存,從來沒有測(cè)試過,今天因?yàn)橐x取一個(gè)大配置文件作為。做了一次測(cè)試得出結(jié)論是使用對(duì)象保存數(shù)據(jù)更好,花費(fèi)的內(nèi)存是數(shù)組的。
一直以為php的數(shù)組更節(jié)省內(nèi)存,從來沒有測(cè)試過,今天因?yàn)橐x取一個(gè)大配置文件作為pool。做了一次測(cè)試;
得出結(jié)論是 使用對(duì)象保存數(shù)據(jù)更好,花費(fèi)的內(nèi)存是數(shù)組array的1/4。
測(cè)試代碼
class obj { public $name; public $id; public function __construct($id,$name) { $this->name = $name; $this->id = $id; } } $max = 10000; $old = memory_get_usage(); for ($i=0;$i<$max;$i++){ $arrayList[] = [$i,$max]; } $new = memory_get_usage(); echo "{$max}個(gè)數(shù)組(默認(rèn)key)內(nèi)存消耗".($new-$old)." "; $old = memory_get_usage(); for ($i=0;$i<$max;$i++){ $arrayList[] = ["id"=>$i,"name"=>$max]; } $new = memory_get_usage(); echo "{$max}個(gè)數(shù)組(和對(duì)象可以互相轉(zhuǎn)換的)內(nèi)存消耗".($new-$old)." "; $old = memory_get_usage(); for ($i=0;$i<$max;$i++){ $objectList[] = new obj($i,$max); } $new = memory_get_usage(); echo "{$max}個(gè)對(duì)象內(nèi)存消耗".($new-$old)." ";
結(jié)果
10000個(gè)數(shù)組(默認(rèn)key)內(nèi)存消耗 4288440 10000個(gè)數(shù)組(和對(duì)象可以互相轉(zhuǎn)換的)內(nèi)存消耗 4284288 10000個(gè)對(duì)象內(nèi)存消耗 1451320
大概比例
array:object = 4:1
越是復(fù)雜的數(shù)組,用過同等對(duì)象保存,內(nèi)存小更多
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/29254.html
摘要:刪除不必要的代碼。而簡(jiǎn)化前的代碼包含的語法要素對(duì)于傳達(dá)代碼意義本身作用并不大。刪除不必要的代碼有時(shí)候,我們?cè)噲D為不必要的事物命名。例如,大多數(shù)情況下,你應(yīng)該省略僅僅用來當(dāng)做返回值的變量。你的函數(shù)名應(yīng)該已經(jīng)說明了關(guān)于函數(shù)返回值的信息。 原文地址 本文已在前端早讀課公眾號(hào)首發(fā):【第952期】JavaScript代碼風(fēng)格要素 譯者:墨白 校對(duì):野草 1920年,由威廉·斯特倫克(Will...
摘要:數(shù)據(jù)檢索有兩種主要形態(tài)。所以,回歸本質(zhì),影響數(shù)據(jù)檢索效率的就那么幾個(gè)因素。數(shù)據(jù)檢索干的是什么事情定位加載變換找到所需要的數(shù)據(jù),把數(shù)據(jù)從遠(yuǎn)程或者磁盤加載到內(nèi)存中。減少的數(shù)據(jù)量的兩個(gè)手段,聚合和抽樣。 數(shù)據(jù)檢索有兩種主要形態(tài)。第一種是純數(shù)據(jù)庫(kù)型的。典型的結(jié)構(gòu)是一個(gè)關(guān)系型數(shù)據(jù),比如 mysql。用戶通過 SQL 表達(dá)出所需要的數(shù)據(jù),mysql 把 SQL 翻譯成物理的數(shù)據(jù)檢索動(dòng)作返回結(jié)果。第...
摘要:內(nèi)置函數(shù)的性能優(yōu)劣。產(chǎn)生額外開銷的錯(cuò)誤抑制符號(hào),最好別用不管是性能優(yōu)化和項(xiàng)目的健壯性等方面。在方法中遞增局部變量,速度是最快的。類似的方法調(diào)用所花費(fèi)的時(shí)間接近于次的局部變量遞增操作。 什么情況之下,會(huì)遇到PHP性能問題?1:PHP語法使用不恰當(dāng)。2:使用PHP語言做了它不擅長(zhǎng)的事情。3:使用PHP語言連接的服務(wù)不給力。4:PHP自身的短板(PHP自身做不了的事情)。5:我們也不知道的問...
摘要:大型網(wǎng)站建議用自代的集群功能從個(gè)人過往的使用情況來看,的負(fù)載能力比高很多。最新的服務(wù)器也改用了。你對(duì)的需求決定你的選擇。在模式下,如果處理慢或者前端壓力很大的情況下,很容易出現(xiàn)進(jìn)程數(shù)飆升,從而拒絕服務(wù)的現(xiàn)象。 1、nginx相對(duì)于apache的優(yōu)點(diǎn): 輕量級(jí),同樣起web 服務(wù),比apache占用更少的內(nèi)存及資源 抗并發(fā),nginx 處理請(qǐng)求是異步非阻塞的,而apache 則是阻塞型的...
閱讀 736·2023-04-25 19:43
閱讀 3981·2021-11-30 14:52
閱讀 3807·2021-11-30 14:52
閱讀 3871·2021-11-29 11:00
閱讀 3802·2021-11-29 11:00
閱讀 3904·2021-11-29 11:00
閱讀 3580·2021-11-29 11:00
閱讀 6184·2021-11-29 11:00