Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 14559|Odpoveď: 0

[Zdroj] Java kryo/protobuf/protostuff serializácia alebo porovnanie výkonu JSON

[Kopírovať odkaz]
Zverejnené 15. 7. 2019 21:16:23 | | |
Pre serializáciu Java objektu by som rád otestoval rozdiel medzi použitím JSON a používaním všeobecných nástrojov na serializáciu z hľadiska časového a priestorového výkonu.

json sa rozhodol použiť fastjson.

Nástroj na serializáciu používa Protostuff a Kyro. Prečo nepoužiť protobuf? Pretože mám pocit, že pre Java triedu so stovkami existujúcich vlastností je vytváranie nového zodpovedajúceho proto súboru trochu neľudské. Protostuff je vylepšená verzia Protobufu, ktorá umožňuje serializovať Java objekt priamo, pričom ho používate podobne ako Kyro, bez toľkých medziprocesov ako Protobuf. Iné, ako Hession, Java so serializáciou a podobne, majú vraj oveľa horší výkon ako Kryo a Protobuf, takže neviem, čo očakávať.

Po jednoduchom teste som zistil, že medzera je dosť zjavná, takže som cítil, že nie je potrebné robiť konkrétne vyšetrenie. Vystrihnite odsek z denníka a pošlite ho von, všetci to cítia.

náklady na čas sú System.nanoTime(); Všetky tri sú predvolené konfigurácie bez akejkoľvek konfigurácie.
Priestorová plocha po serializácii je o niečo nižšia ako u protostuff, a oba sú oveľa vyššie než pri JSON. Je to ľahko pochopiteľné, napokon, json reťazce sú čitateľné, nenútejte príliš veľa.
Čas potrebný na serializáciu a deserializáciu je lepší ako pri Kyro oproti FastJSON a rozdiel je dosť zrejmý.

Takže na záver, ak neexistujú extrémne náročné požiadavky na priestor, Protostuff môže byť najlepšou voľbou. Protostuff má oproti Kyro ďalšiu výhodu, a to, že ak trieda Java pridáva polia po serializácii a pred deserializáciou (čo je v reálnom biznise nevyhnutné), Kyro bude zbytočný. Avšak protostuff sa dá používať, pokiaľ je pridaný na konci triedy a používa sériu sun JDK. Preto, ak sa serializácia používa v scenároch ako cache a serializovaný objekt musí byť uložený dlhý čas, môžete zvoliť len protostuff.

Samozrejme, ak je potrebná čitateľnosť alebo niečo podobné, môžete použiť iba json.




Predchádzajúci:asp.net Prispôsobiť názov session id
Budúci:Porovnanie výkonu Protobuf a JSON pod platformou .NET
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com