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