1. gzyueqian
      13352868059

      Java培訓:如何在Java序列化中獲得C++速度

      更新時間: 2022-11-10 14:36:59來源: 粵嵌教育瀏覽量:8025

        對于任何低延遲軟件來說,最常見的操作引入最小延遲是至關重要的。例如,在交易軟件中,一個常見的、對時間敏感的操作是微服務之間的消息傳遞。為了最小化通信的內存占用,所有消息都由發送方序列化,由接收方反序列化。因此,從性能的角度來看,序列化/反序列化過程引入最小的延遲是至關重要的。對Java感興趣的同學,可以參加Java培訓來獲得知識和技能,以便快速上崗。

        閱讀本文,了解更多關于Java中利用C++方法論的低延遲技術:普通的可復制對象和和內存。使普通操作更快一點,從而在聚合操作中節省大量時間。瑣碎可復制對象的序列化速度可以比常規Java對象快五倍以上,并且由Chronicle服務等Chronicle庫支持。

        

        普通的可復制對象——用Java?

        平凡的可復制對象在C++開發中很常見,但是如果你不熟悉這個術語,一個類比可能有助于展示它們的優勢。

        假設你在一家倉庫工作,你經常在最后一刻接到兩個foo和一個bar的訂單,該發貨了。foo位于倉庫的西邊,bar位于東邊,因此你需要訪問倉庫的兩端來收集訂單。這需要時間。如果對于這種常見的最后一分鐘訂單,你可以將組件放在一個地方,情況會怎樣?然后,無論何時你收到時間緊迫的訂單,你都可以快速地收集并發送它們。想掌握 Java 技術的同學不妨報個Java培訓班,可以節省學習時間,提高學習效率,在短時間內學有所成,還能找到一份不錯的工作。

        將組件保存在一個地方,大致上是普通可復制對象的概念,所有信息都存儲在一個連續的內存塊中。由于所有數據都在一個位置,因此可以通過一次操作將數據從該存儲位置復制到另一個位置。在C++中,這可以使用memcpy來實現,這是復制數據最快的方法。

        常規Java對象包含對對象或非原始數據類型的引用,它們存儲在不同的內存位置。復制這樣一個Java對象需要多個內存副本,類似于在倉庫中跑來跑去。因此,復制Java對象在延遲方面代價很高。

        

        幸運的是,我們可以利用提到的C++方案,使Java序列化更快。關鍵是創建普通的可復制Java對象,即簡單到可以在一次操作中復制的對象。要求?僅使用原始數據字段。因為原語字段具有固定的大小,所以普通的可復制對象的大小是靜態的,因此該對象可以存儲在單個存儲塊中。只使用原始數據類型似乎有局限性,但是即使是具有非原始字段的對象也常常可以被轉換成普通的可復制對象。

        Chronicle系列化基準

        Chronicle序列化庫完全支持Java中的瑣碎可復制對象,實現了更快的數據序列化。

        在下面所示的基準測試中,使用了兩個微服務應用程序,其中一個通過持久化隊列向另一個發送BookUpdates。BookUpdate類要么是一個“普通對象”,帶有符號、交換、時間作為String對象和一個請求和出價列表,要么是“普通可復制對象”,這些字段映射到原始字段,如int、long或double字段。在java培訓中,有更加系統全面的課程,明確清晰的學習路線,學習起來既輕松,又高效。

        如下文所示,在典型情況下,瑣碎可復制對象的序列化和反序列化比常規對象快5倍以上(50%)。所有時間都以微秒為單位。

        普通對象

        

        普通可復制對象

        

        較高的百分位數顯示兩種變體之間的差異較小,可能與串行化以外的其他事情有關,例如SSD設備延遲。

        這種方法的缺點是什么?

        雖然使用memcpy是有效的,但Java標準將對象如何在內存中布局留給JVM實現者。這意味著不能保證使用一種類型的JVM(例如OpenJDK)發送的對象可以使用另一種類型JVM(如J9)正確接收。然而,對于任何給定的JVM類型,內存布局都是穩定的,因此如果全面使用同一系列JVM,應該不會出現問題。添加集成測試非常容易,確保完全兼容。

        結論

        通過在Java開發中應用瑣碎可復制對象的原理,可以顯著改善序列化和反序列化的延遲足跡。這類對象的關鍵原則是,它們只包含原始數據字段,好消息是,即使是非原始數據字段的對象也常常可以轉換為普通的可復制對象。Chronicle Services為Java中的瑣碎可復制對象提供了獨特的支持,與常規Java對象相比,它實現了五倍多的序列化速度。想學習更多 Java 知識和技能,建議參加java培訓,課程實時更新,緊跟市場和企業,讓你學到最新的java技能,提高市場競爭力。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 欧美一级在线小说视频 | 亚洲色偷偷偷综合网另类小说 | 中文字幕在线看一区视频 | 亚洲日韩欧美一区二区不卡 | 伊久线香蕉观新综合在线动漫 | 中文字幕不卡高清视频在线 |