摘要:日常工作中需要在數(shù)據(jù)庫中存儲一些結(jié)構(gòu)數(shù)據(jù),常用的方法有兩種,一是序列化,二是格式。兩者各有優(yōu)缺點,比如序列化支持對象格式序列化后的數(shù)據(jù)會保存數(shù)據(jù)類型和數(shù)據(jù)個數(shù)。而格式相比序列化的數(shù)據(jù)更短,并且前后端交互時適用性也更好。
日常工作中需要在數(shù)據(jù)庫中存儲一些結(jié)構(gòu)數(shù)據(jù),常用的方法有兩種,一是序列化(serialize),二是json格式。
兩者各有優(yōu)缺點,比如序列化支持對象格式、序列化后的數(shù)據(jù)會保存數(shù)據(jù)類型和數(shù)據(jù)個數(shù)。而json格式相比序列化的數(shù)據(jù)更短,并且前后端交互時適用性也更好。
但在實際的項目中,應(yīng)該用哪種格式來存儲數(shù)據(jù)呢?網(wǎng)上說法不一,老手們更傾向于序列化(可能是因為json格式是在PHP5.2之后才引進(jìn)的),而年輕小伙們更傾向于json(可能他們沒聽說過序列化),今天拋開其他的不談,只從性能上看看,哪種格式性能更好。
測試環(huán)境測試日期:2016年07月23日
測試機:MacBook Pro(13 英寸,2015 年初期)
CPU:2.7 GHz Intel Core i5
內(nèi)存:8 GB 1867 MHz DDR3
PHP版本:PHP 5.6.15
測試說明測試步驟:
1.小數(shù)據(jù)的序列化和json壓縮
2.小數(shù)據(jù)的序列化和json解壓縮
3.大數(shù)據(jù)的序列化和json壓縮
4.大數(shù)據(jù)的序列化和json解壓縮
測試方法:
每次測試循環(huán)10次,每個操作循環(huán)10000次
測試結(jié)論在最下面,測試代碼在最最下面,對數(shù)據(jù)沒興趣的小伙伴可以直接拉到最下面
小數(shù)據(jù)壓縮測試數(shù)據(jù)
[1,2,3,4,5,6,7,8,9,0]
序列化
0.013802766799927 0.012701034545898 0.015209913253784 0.012706995010376 0.012805938720703 0.013393878936768 0.013147830963135 0.012894153594971 0.013478994369507 0.012289047241211
json
0.0054340362548828 0.0052530765533447 0.0050327777862549 0.0051569938659668 0.0053970813751221 0.0050327777862549 0.0049920082092285 0.0052528381347656 0.0051090717315674 0.0069460868835449小數(shù)據(jù)解壓縮
測試數(shù)據(jù)
序列化:a:10:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:5;i:5;i:6;i:6;i:7;i:7;i:8;i:8;i:9;i:9;i:0;} JSON:[1,2,3,4,5,6,7,8,9,0]
序列化
0.012141942977905 0.012423992156982 0.011405944824219 0.011841058731079 0.011488914489746 0.013920068740845 0.011885166168213 0.01164984703064 0.011460065841675 0.012734889984131
json
0.014571905136108 0.014070987701416 0.015500068664551 0.013802051544189 0.015894174575806 0.014295101165771 0.013956069946289 0.013836145401001 0.014487028121948 0.012983083724976大數(shù)據(jù)壓縮
測試數(shù)據(jù)
怕影響排版,只放上網(wǎng)址,可以復(fù)制后查看 http://api.mooninbox.com/api4/?api=goods/all
序列化
0.9694550037384 0.98343706130981 0.97917294502258 1.0035130977631 0.9904420375824 1.0137100219727 0.9673900604248 1.0110490322113 0.96677398681641 0.98873591423035
json
1.7659771442413 1.8020439147949 1.7754938602448 1.7524900436401 1.7396509647369 1.716423034668 1.708487033844 1.7435081005096 1.7137379646301 1.724583864212大數(shù)據(jù)解壓縮
測試數(shù)據(jù)
怕影響排版,只放上網(wǎng)址,可以復(fù)制后查看 http://api.mooninbox.com/api4/?api=goods/all
序列化
1.0362830162048 1.0082030296326 1.0194120407104 1.0099349021912 1.0123431682587 1.0072951316833 1.0213930606842 1.0140759944916 1.0116169452667 1.0359060764313
json
4.1445369720459 4.1114408969879 4.0740749835968 4.1012029647827 4.1110889911652 4.0948538780212 4.1167409420013 4.0959279537201 3.9271330833435 3.935909986496測試結(jié)果
在小數(shù)據(jù)壓縮方面,json比序列化快了近1倍,而其他方面序列化比json都要快一些,特別是大數(shù)據(jù)解壓縮這一塊整整快了4倍。
有了這些數(shù)據(jù)支持,你會怎么選呢?
反正我是會用json,拿到j(luò)son之后直接丟給前端或者移動端,讓他們自己去處理吧,理由就是“服務(wù)端的性能很寶貴,哈哈哈”
測試代碼"; $i++; }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/21178.html
摘要:而一個編譯器本身是有一個上限的,雖然大部分情況下是用不滿的。我們將此稱作友好或者不友好的分割。同時,也不要無緣無故就覺得人家損害了你應(yīng)用的性能,那是你自己用得不好。 Java 8提供的流的基于Lambda表達(dá)式的函數(shù)式的操作寫法讓人感覺很爽,筆者也一直用的很開心,直到看到了Java8 Lambda表達(dá)式和流操作如何讓你的代碼變慢5倍,筆者當(dāng)時是震驚的,我讀書少,你不要騙我。瞬間我似乎為...
摘要:在兩個平臺三個平臺下,比較這五個深度學(xué)習(xí)庫在三類流行深度神經(jīng)網(wǎng)絡(luò)上的性能表現(xiàn)。深度學(xué)習(xí)的成功,歸因于許多層人工神經(jīng)元對輸入數(shù)據(jù)的高表征能力。在年月,官方報道了一個基準(zhǔn)性能測試結(jié)果,針對一個層全連接神經(jīng)網(wǎng)絡(luò),與和對比,速度要快上倍。 在2016年推出深度學(xué)習(xí)工具評測的褚曉文團(tuán)隊,趕在猴年最后一天,在arXiv.org上發(fā)布了的評測版本。這份評測的初版,通過國內(nèi)AI自媒體的傳播,在國內(nèi)業(yè)界影響很...
閱讀 937·2021-10-27 14:14
閱讀 1754·2021-10-11 10:59
閱讀 1327·2019-08-30 13:13
閱讀 3164·2019-08-29 15:17
閱讀 2762·2019-08-29 13:48
閱讀 502·2019-08-26 13:36
閱讀 2092·2019-08-26 13:25
閱讀 866·2019-08-26 12:24