AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁 > 科技  > 軟件

揚名立萬的機會來了!Java 十億行全球挑戰(zhàn)

來源: 責(zé)編: 時間:2024-01-08 09:17:52 245觀看
導(dǎo)讀一、前言2024年元旦起,此挑戰(zhàn)正式開放提交,截止日期為2024年1月31日。2024年1月31日23:59 UTC之后創(chuàng)建的提交(即拉取請求)將不予考慮。“十億行挑戰(zhàn)”(1BRC)是一個有趣的探索,旨在測試 Java 從文本文件中聚合十億行數(shù)據(jù)的能

一、前言

2024年元旦起,此挑戰(zhàn)正式開放提交,截止日期為2024年1月31日。2024年1月31日23:59 UTC之后創(chuàng)建的提交(即拉取請求)將不予考慮。e7W28資訊網(wǎng)——每日最新資訊28at.com

“十億行挑戰(zhàn)”(1BRC)是一個有趣的探索,旨在測試 Java 從文本文件中聚合十億行數(shù)據(jù)的能力。動用你所有的(虛擬)線程,使用 SIMD 技術(shù),優(yōu)化垃圾回收,或者嘗試其他任何技巧,創(chuàng)建最快的實現(xiàn)方案來解決這個任務(wù)吧!e7W28資訊網(wǎng)——每日最新資訊28at.com

二、挑戰(zhàn)內(nèi)容

圖片圖片e7W28資訊網(wǎng)——每日最新資訊28at.com

文本文件包含了一系列天氣站的溫度值。每一行都是一個測量結(jié)果,格式為<string: 站點名稱>;<double: 測量值>,其中測量值恰好有一位小數(shù)。以下是一個示例,展示了十行數(shù)據(jù):e7W28資訊網(wǎng)——每日最新資訊28at.com

Hamburg;12.0Bulawayo;8.9Palembang;38.8St. John's;15.2Cracow;12.6Bridgetown;26.9Istanbul;6.2Roseau;34.4Conakry;31.2Istanbul;23.0

任務(wù)是編寫一個Java程序,該程序讀取文件,計算每個氣象站的最低、平均和最高溫度值,并將結(jié)果按照站點名稱按字母順序排列,并以格式<最低溫度>/<平均溫度>/<最高溫度>的方式輸出到stdout(即標(biāo)準(zhǔn)輸出),并將結(jié)果保留一位小數(shù)。e7W28資訊網(wǎng)——每日最新資訊28at.com

{Abha=-23.0/18.0/59.2, Abidjan=-16.2/26.0/67.3, Abéché=-10.0/29.4/69.0, Accra=-10.1/26.4/66.4, Addis Ababa=-23.7/16.0/67.0, Adelaide=-27.8/17.3/58.5, ...}

注意:必須使用 Java 21e7W28資訊網(wǎng)——每日最新資訊28at.com

三、運行挑戰(zhàn)

1brc 代碼庫包含兩個程序:e7W28資訊網(wǎng)——每日最新資訊28at.com

  • dev.morling.onebrc.CreateMeasurements (通過 create_measurements.sh 調(diào)用): 在此項目的根目錄中創(chuàng)建帶有可配置數(shù)量的隨機測量值的
    measurements.txt 文件。
  • dev.morling.onebrc.CalculateAverage (通過 calculate_average.sh 調(diào)用): 計算 measurements.txt 文件的平均值。

執(zhí)行以下步驟來運行挑戰(zhàn):e7W28資訊網(wǎng)——每日最新資訊28at.com

  1. 使用Apache Maven構(gòu)建項目:
./mvnw clean verify
  1. 創(chuàng)建 1B 行測量文件(僅運行一次):
./create_measurements.sh 1000000000

這將需要幾分鐘。注意:生成的文件大小約為 12GB,請確保有足夠的磁盤空間。e7W28資訊網(wǎng)——每日最新資訊28at.com

  1. 計算平均測量值:
./calculate_average.sh

提供的簡單示例實現(xiàn)使用Java流API來處理文件,并在用于結(jié)果評估的環(huán)境中以約2分鐘完成任務(wù)。它作為比較自己實現(xiàn)的基線。e7W28資訊網(wǎng)——每日最新資訊28at.com

  1. 進行優(yōu)化:

調(diào)整 CalculateAverage 程序以加快速度,使用任何你認為合適的方式(只需遵循下面描述的幾個規(guī)則)。選項包括并行化計算、使用(孵化中的)向量API、同時內(nèi)存映射文件的不同部分、使用AppCDS、GraalVM、CRaC等加快應(yīng)用程序啟動速度的工具,選擇和調(diào)整垃圾收集器等等。e7W28資訊網(wǎng)——每日最新資訊28at.com

四、規(guī)則和限制

  • 可以使用以下任何Java發(fā)行版:

SDKMan 提供的任何構(gòu)建e7W28資訊網(wǎng)——每日最新資訊28at.com

openjdk.net 上可用的早期訪問版本(包括Valhalla等OpenJDK項目的EA版本)e7W28資訊網(wǎng)——每日最新資訊28at.com

builds.shipilev.net 上的構(gòu)建。如果要使用這些渠道不可用的構(gòu)建,請聯(lián)系討論是否可以考慮。e7W28資訊網(wǎng)——每日最新資訊28at.com

  • 不得使用外部依賴庫
  • 實現(xiàn)必須使用單個Java源文件
  • 計算必須在應(yīng)用程序運行時進行,即不能在構(gòu)建時處理測量文件(例如,當(dāng)使用GraalVM時)并將結(jié)果直接嵌入到二進制文件中

輸入值范圍如下:e7W28資訊網(wǎng)——每日最新資訊28at.com

  • 站點名稱:非空的UTF-8字符串,最小長度為1個字符,最大長度為100個字符
  • 溫度值:非空的double值,介于-99.9(含)和99.9(含)之間,始終帶有一位小數(shù)
  • 實現(xiàn)不能依賴于給定數(shù)據(jù)集的特定情況,例如必須支持根據(jù)上述約束條件的任何有效站點名稱和任何數(shù)據(jù)分布(每個站點的測量次數(shù))

五、參加挑戰(zhàn)

要將您自己的實現(xiàn)提交給1BRC,請按照以下步驟操作:e7W28資訊網(wǎng)——每日最新資訊28at.com

  • 創(chuàng)建 1brc GitHub 存儲庫的 fork。
  • 創(chuàng)建 CalculateAverage.java 的副本,命名為 CalculateAverage_<your_GH_user>.java,例如 CalculateAverage_doloreswilson.java。
  • 使該實現(xiàn)變得快速。真的很快。
  • 創(chuàng)建 calculate_average.sh 的副本,命名為 calculate_average_<your_GH_user>.sh,例如 calculate_average_doloreswilson.sh。
  • 調(diào)整該腳本,以引用您的實現(xiàn)類名。如果需要,在該腳本中通過 JAVA_OPTS 變量提供任何 JVM 參數(shù)。
  • OpenJDK 21 是默認選項。如果需要使用自定義 JDK 構(gòu)建,請在應(yīng)用程序啟動之前的啟動 shell 腳本中包含 SDKMAN 命令 sdk use java [version]。
  • (可選)如果您想要使用原生二進制文件(GraalVM),請調(diào)整 pom.xml 文件以構(gòu)建該二進制文件。
  • 針對上游存儲庫創(chuàng)建一個拉取請求,明確說明

您的實現(xiàn)類的名稱。
程序在您的系統(tǒng)上的執(zhí)行時間以及相應(yīng)的規(guī)格(CPU、核心數(shù)、RAM)。這僅供參考,官方運行時將如下所述確定。e7W28資訊網(wǎng)——每日最新資訊28at.com

如果您想與社區(qū)討論有關(guān)實施1BRC的任何潛在想法,可以使用此存儲庫的 GitHub 討論。請保持友好和文明。e7W28資訊網(wǎng)——每日最新資訊28at.com

六、評估結(jié)果

結(jié)果是通過在 Hetzner Cloud CCX33 實例(8個CPU,32 GB RAM)上運行程序來確定的。時間程序用于測量執(zhí)行時間,即測量整個時間。每個競爭者將連續(xù)運行五次。最慢和最快的運行將被丟棄。剩下三次運行的平均值是該競爭者的結(jié)果,并將添加到上面的結(jié)果表中。用于評估所有競爭者的完全相同的 measurements.txt 文件。如果您想在Hetzner Cloud上自行測試,請使用這些設(shè)置腳本(基于Terraform和Ansible),可能會對您有所幫助。請注意,這將產(chǎn)生費用 :) e7W28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片e7W28資訊網(wǎng)——每日最新資訊28at.com

項目地址:https://github.com/gunnarmorling/1brc 快來挑戰(zhàn)吧!e7W28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-57923-0.html揚名立萬的機會來了!Java 十億行全球挑戰(zhàn)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Fiber Golang 中的路由和中間件

下一篇: 八張圖講清楚Mmap實現(xiàn)原理

標(biāo)簽:
  • 熱門焦點
Top