日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java短_Java中的最短代码和最低延迟

發布時間:2024/9/19 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java短_Java中的最短代码和最低延迟 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如何編寫以最快速度執行的代碼,同時仍將編碼保持在最低限度?

最短代碼和最低延遲

誰能編寫具有最低延遲的最短Java代碼,以及使用了哪些工具?

更具體地說,目標是開發一個Java應用程序,使用通用解決方案計算現有1,000部電影中五部電影的總和,最小,最大和平均租賃時間。五個膠片應該是圍繞中間膠片長度的膠片,從498開始,到第502膠片(包括)以膠片上升長度結束。

基于SQL / JDBC的解決方案

解決問題的一種方法是直接使用SQL / JDBC,如下所示。下面是一個SQL代碼示例,它解決了問題的計算部分:

如果我在筆記本電腦上運行它,我會在服務器端獲得大約790微秒的延遲(標準MySQL 5.7.16)。要使用此解決方案,我們還需要添加Java代碼以發出SQL語句并將值從JDBC讀回到Java變量中。這意味著代碼將更大,執行時間更長,如下所示:

為了給這個替代方案提供一個公平的機會,我重新使用了基準測試中的調用之間的連接,而不是每次都重新創建它

結果:~1,000 us和~25代碼行

使用了Speedment in-JVM內存加速:

這比SQL / JDBC快得多,并且只需6微秒即可完成。

優化的速度解決方案

事實上,有一種方法可以比獲勝貢獻更多地改善延遲。通過應用IntFunction能夠int直接從RAM 進行值的原位反序列化(原位),它可以進一步提高性能。就地反序列化意味著我們不必反序列化整個實體,只需提取所需的部分即可。這節省了時間,特別是對于具有許多列的實體。以下是優化解決方案的外觀:

這甚至更快,并在3微秒內完成。

只要5行代碼的解決方案

GraalVM和優化的速度解決方案

GraalVM包含一個改進的C2編譯器,已知可以改善許多工作負載的流性能。特別是,在Graal下,內聯和逃逸分析的好處似乎要比普通的OpenJDK好得多。

我很想知道上面的優化解決方案如何從GraalVM中受益。沒有代碼更改,我在GraalVM(1.0.0-rc9)下運行它,現在,延遲降低到1微秒!這意味著我們可以在筆記本電腦上每個線程每秒執行1,000,000個此類查詢,并且可能在服務器級計算機上執行更多。

概觀

當我們將SQL / JDBC延遲與最佳Speedment解決方案進行比較時,Speedment的加速因子大約為1,000倍。。如果您想簡化代碼,這是一個巨大的進步。

為了能夠在圖表中繪制解決方案,我刪除了相對較慢的SQL / JDBC解決方案,并僅顯示了不同的Speedment解決方案和運行時如何:

基準筆記

上面提到的基準測試結果是在我的MacBook Pro Mid 2015,2.2 GHz Intel Core i7,16 GB 1600 MHz DDR3,Java 8,JMH(1.21)和Speedment(3.1.8)上運行時獲得的

結論

使用in-JVM內存技術和Java流可以同時減少數量級的延遲并減少代碼大小。此外,GraalVM可以在許多條件下顯著提高您的流性能。

總結

以上是生活随笔為你收集整理的java短_Java中的最短代码和最低延迟的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。