課程
/后端開發(fā)
/Java
/Java高并發(fā)秒殺API之高并發(fā)優(yōu)化
二進(jìn)制序列化反序列化效率更高嗎?
2017-08-25
源自:Java高并發(fā)秒殺API之高并發(fā)優(yōu)化 2-1
正在回答
我來給你解釋:
第一,通過jedis 儲(chǔ)存對象有大概三種,one:本課程的序列化成byte字節(jié) ,最終存byte字節(jié),two:對象轉(zhuǎn)hashmap,也就是你想表達(dá)的hash的形式,最終存map,three:對象轉(zhuǎn)json,最終存json,其實(shí)也就是字符串
第二:其實(shí)如果你是平常的項(xiàng)目,并發(fā)不高,三個(gè)選擇都可以,反而你說的hash的形式更加靈活,可以對象的單個(gè)屬性,但是來了,秒殺的場景的情況下,三者的效率差別很大的
第三:結(jié)果如下
10w數(shù)據(jù) ? ? ? ? ?時(shí)間 ? ?內(nèi)存占用 ? ?
存json ? ? ? ????????10s ? ? ? ?14M ? ?
存byte ? ? ????????? 6s ? ? ? ? ? ?6M ? ?
存jsonMap ? ? ?10s ? ?? ? ? 20M ? ?
存byteMap ? ? ?4s ? ??????????4M ? ?
取json ? ?????? ? ??7s ? ?? ? ?
取byte ? ?????????? 4s ? ?? ? ?
取jsonmap ? ? ?7s ? ?? ? ?
取bytemap ? ? ?4s ? ?? ? ?
第四:你該說了,bytemap最快啊,為啥不用啊,因?yàn)樽髡哂昧顺墢?qiáng)悍的序列化工具啊,以上測試基于java的序列化,如果改了序列化工具,你可以測試下。
因本人能力有限,以上可能有謬論,懇請指正
秋田君 提問者
qq_為了美好的明天
魄彈獸
舉報(bào)
Java實(shí)現(xiàn)高并發(fā)秒殺API的第四門課,小伙伴一定可以從中受益
3 回答redis 對象存取
3 回答若秒殺對象的庫存發(fā)生改變,redis緩存如何更新對象
2 回答為什么不用存儲(chǔ)過程來解決多條sql語句執(zhí)行帶來的網(wǎng)絡(luò)延遲
1 回答想問下老師這里使用redis緩存的目的是不是只是演示下怎么進(jìn)行緩存一些不用經(jīng)常讀寫的sql對象而不用考慮刷新緩存呢?
1 回答存儲(chǔ)過程適用性
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2017-08-30
我來給你解釋:
第一,通過jedis 儲(chǔ)存對象有大概三種,one:本課程的序列化成byte字節(jié) ,最終存byte字節(jié),two:對象轉(zhuǎn)hashmap,也就是你想表達(dá)的hash的形式,最終存map,three:對象轉(zhuǎn)json,最終存json,其實(shí)也就是字符串
第二:其實(shí)如果你是平常的項(xiàng)目,并發(fā)不高,三個(gè)選擇都可以,反而你說的hash的形式更加靈活,可以對象的單個(gè)屬性,但是來了,秒殺的場景的情況下,三者的效率差別很大的
第三:結(jié)果如下
10w數(shù)據(jù) ? ? ? ? ?時(shí)間 ? ?內(nèi)存占用 ? ?
存json ? ? ? ????????10s ? ? ? ?14M ? ?
存byte ? ? ????????? 6s ? ? ? ? ? ?6M ? ?
存jsonMap ? ? ?10s ? ?? ? ? 20M ? ?
存byteMap ? ? ?4s ? ??????????4M ? ?
取json ? ?????? ? ??7s ? ?? ? ?
取byte ? ?????????? 4s ? ?? ? ?
取jsonmap ? ? ?7s ? ?? ? ?
取bytemap ? ? ?4s ? ?? ? ?
第四:你該說了,bytemap最快啊,為啥不用啊,因?yàn)樽髡哂昧顺墢?qiáng)悍的序列化工具啊,以上測試基于java的序列化,如果改了序列化工具,你可以測試下。
因本人能力有限,以上可能有謬論,懇請指正