Azul Zulu-クラウド用のJVMか、Windows上のOpenJDKポートですか?

最近サンフランシスコで終了したJavaOne 2013カンファレンスで、Microsoft Open TechnologiesとAzul Systemsは、Windows Azureクラウドプラットフォーム用のOpenJDKポートであるZuluを発表しました。 3か月前、OracleとMicrosoftはクラウドテクノロジーの分野でのパートナーシップを発表したことを考慮し、多くはOracleがクラウドプラットフォーム用のJVMをMicrosoftからリリースすることを期待していました。 ただし、このようなJVMは、大きなヒープを備えたハイエンドサーバーソリューションで知られる複数年のJava SE ライセンシーであるAzul Systemsによってリリースされました。



記事の最初の部分では、このZuluが誰であり、彼に何を期待できるかを理解しようとします。 これは単なる旅の始まりですか、それとも既成のソリューションですか? 第2部では、Zulu Technology Previewの展開に移り、副作用として、OracleがJDKを詰め込んでZuluの1.5倍の重量になるようにします。











Java:OracleとIBM? アズールとマイクロソフト!



興味深い時代が来ています。 より正確には、彼らはすでに到着しています。 過去6か月の間に、AzulとMicrosoftは、Java、特にロシアに関して、どういうわけか非常に活発になりました。 自分で判断する:





アズールとは



一般に、Azul Systemsは高性能Javaソリューションで知られています。 彼らは、ハードウェア上でJavaを作成することから始めました。 まあ、より正確には、それはLinuxであり、計算はすべて別のボードで実行されます( NVidia CUDAはすぐに思い浮かびます)。 ソリューションはAzul Vegaと呼ばれます。 最近のバージョンには、数百の処理コアと数百ギガバイトのRAM が含まれています。



@TheShadeは、かつて彼がインテルで働いていた時間を自転車に話しました。 同様に、SunのJavaが4,000匹のオウムを与えた標準ベンチマークを採用し、実装の最適化を開始し、長い労力をかけて5,000匹のオウムを圧搾しました。 「ほら!」彼らは叫んで、25%ものサノフの実装の尊厳をどのように果たしたかについての記事を公開しました。 その後、Azulのメンバーが来てベンチマークを取り、Vegaで4,000頭と5,000頭ではなく、 100万頭のオウムを受け取りました。 カーテン。


数年前、Azulは純粋なソフトウェアソリューション-Zing for Linuxを作成しました。 どうやら、Linux 2.6のいくつかのバージョンから始まって、Linux APIは鉄の部分を放棄し、鉄の部分からソフトウェアへのベストプラクティスを移植するのに十分でした。 かなりクールでした。 Zingは、大きなヒープを持つ手押し車のソリューションとして位置付けられています。



ご存知のように、各パンには何か価値があります。 低レイテンシの場合、私たちは常にスループットを犠牲にしなければなりません 。 有名なエリザロフ氏は最近、お茶の席で、5%の負荷率でスタンドで急激なレイテンシーを達成し、すでに約10%のレイテンシーが大幅に低下し始めたと語った。 おそらく、アズールのひねりは、彼らの決定をはるかにわかりにくくするかもしれないが、これは現時点ではそうではない。



Azulプレスリリース



Azulは彼のプレスリリースで公式に何を語っていますか?

まず、Windows Azureについて説明します。 第二に、今ではファッショナブルな「コミュニティ主導型」があります。 第三に、Java SE 7仕様との完全な互換性について述べているため、これらの人たちはOpenJDKをそれほど壊しませんでした。



興味深い:Azulはパッチとバグ修正をOpenJDKに積極的にアップロードします。 それは、他の誰かのものを使用するだけでなく、貢献することでもあります。 これはクールな声明ですが、新しいものではありません。 通常のJavaライセンシーは、少なくとも頭痛を取り除くためにこれを行います。

OpenJDKのバグを発見したforなライセンシーVasyaが、自分のフォークでそれを修正したが、他の人には伝えなかったと想像してください。 バックポート用ではありません。 そして、自分自身にとても喜んで座っています。 1か月後、正直なPetyaが同じ問題を発見し、彼自身の方法でそれを修正し、OpenJDKにアップロードしたとします。 その結果、更新されたOpenJDKとの最初の同期時に、Vasyaはソース内で突合せ競合を起こします。これは対処する必要があります。 そして、これはまだ喜びです。




マイクロソフトの目を通して



レドモンドでも、眠らないでください。 Microsoft Open TechnologiesのDudeはMSDNで、ZuluのおかげでWindows向けOpenJDK 7の最新バージョンがバイナリ形式で利用可能になったというトリックを書いており、後にAzulのプレスリリースを引用しています。



プレス



ComputerWorldのJoab Jackson 氏は、 Azul サービスとしてAzureでJavaを必要とする人にとって Azul デフォルトプラットフォームになること 明らかです。 さらに、彼はOracle Cloudについて言及しています。OracleCloudでは、 何らかの理由でOracle Java SEをサービスとして提供せず、サービスとしてより高いレベルのソリューションであるJava EEを提供しています。 たとえば、JavaEEアプリケーションをOracle Cloudにデプロイすると、効率的に実行する方法がわかります。



これは、一方でクラウドモデルの観点からは妥当に聞こえますが、他方ではJava SEでボルトを打つようなものです。 ビジネスにはJava EEなしのJava SEが必要ですか? 気にする価値はありますか? この記事から判断すると、Microsoftはこの質問にかなり肯定的に回答し、Oracleはかなり否定的に回答しています。 最後に、これはComputerWorldに関する記事であり、OracleまたはMicrosoftの公式リリースではないことに注意してください。



開梱



それで、Zulu Technology Previewをタッチしてください。 Azul Systemsの公式Webサイトにリンクがあります。 クリックすると、見よ、私たちの前に60メガバイトのzipアーカイブがあります。 名前から判断すると、このビルドはOpenJDK 7u25上に構築され、Windows x64で投獄されます。 参考までに、win x64でのOracle JDK 7u25は約90メガバイト、Oracle JDK 7u40は125メガバイトの重さです。 以下を開始します。

D:\zulu1.7.0_25-7.0.0.0-win64\bin>java -version





openjdk version "1.7.0_25"





OpenJDK Runtime Environment (Zulu 7.0.0.0-win64) (build 1.7.0_25-b34)





OpenJDK 64-Bit Server VM (Zulu 7.0.0.0-win64) (build 23.25-b03, mixed mode)







うーん、わかりました。 最初の質問の答えを得たようです。 現時点では、2013年秋、Azul ZuluはクラウドJavaプロジェクトの始まりに過ぎません。



アーカイブの内部を見ていきましょう。 解凍されたjdk 1.7.0_25の重さは216メガバイト、解凍されたzulu 1.7.0_25の重さは136メガバイトです。 犬は残りの80メートルをどこで襲いましたか?



この時点で、ファイルの内容に関する違いは、Oracle JDKに多数の独自技術が含まれていることであるため、さらに重くなり、比較が完全に正確ではないことに気付きました。 この意味で、Ubuntuの下でOracle JDKとOpenJDKアセンブリを比較する必要がありました-それは簡単です。 ただし、Zuluはまだ初期段階にあるため、Expert Advisorは非常に有効に見えます。



そのため、結果として:内部では、Windows用の異なるコンパイラー(または少なくとも1つのコンパイラーの異なる設定)と、誰もが必要としないOracleのいくつかのテクノロジーを使用して、配布キットを拡張しています。 最後の問題を克服するために、Java SE 8はCompact Profilesを実装しました。 一連のファイルで2つのソフトウェアを比較することは完全に愚かであり、さらに掘り下げてすべて実行し、オウムなどで自分自身を測定する必要があることを理解しています。 しかし、これはレビュー記事ではなく技術記事の資料です。 再び、ズールーはまだ初期段階にあることを考えると、違いは最小限になると推測できます。



実行しましょう!



私の手に来た最初のjar-nickはDcompilerです。java -jar java -jar ...







D:\>D:\zulu1.7.0_25-7.0.0.0-win64\bin\java.exe -jar DCompiler.jar





Exception in thread "main" java.awt.HeadlessException





at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:208)





at java.awt.Window.(Window.java:535)

at java.awt.Frame.(Frame.java:420)

at java.awt.Frame.(Frame.java:385)

at javax.swing.JFrame.(JFrame.java:180)

at MainFrame.(MainFrame.java:253)

at Gui.create(Gui.java:18)






at Gui.main(Gui.java:49)







, Headless . , OpenJDK AWT Swing Zulu . IntelliJ IDEA . , , java.awt.headless=true :) :



D:\>D:\zulu1.7.0_25-7.0.0.0-win64\bin\java.exe -Djava.awt.headless=false -jar DCompiler.jar









- , Zulu. - Azul Systems Microsoft OpenJDK . , - JIT. , - Zing, Linux, ( ) Zulu.



Zulu Windows Azure, OpenJDK . ? ? . Zulu ? Zulu? , - Java- - . OpenJDK Windows x64. , , .



, Zing Zulu. Zing -- . Zulu, , , . Azul? ? - Zing Zulu? OpenJDK, , ? , . .



-- Java , JVM . ? ? ? - ? I/O ( ), ? , .



Joker 2013 , . , CTO Azul Systems Microsoft Java Windows Azure. .




















at java.awt.Window.(Window.java:535)

at java.awt.Frame.(Frame.java:420)

at java.awt.Frame.(Frame.java:385)

at javax.swing.JFrame.(JFrame.java:180)

at MainFrame.(MainFrame.java:253)

at Gui.create(Gui.java:18)






at Gui.main(Gui.java:49)







, Headless . , OpenJDK AWT Swing Zulu . IntelliJ IDEA . , , java.awt.headless=true :) :



D:\>D:\zulu1.7.0_25-7.0.0.0-win64\bin\java.exe -Djava.awt.headless=false -jar DCompiler.jar









- , Zulu. - Azul Systems Microsoft OpenJDK . , - JIT. , - Zing, Linux, ( ) Zulu.



Zulu Windows Azure, OpenJDK . ? ? . Zulu ? Zulu? , - Java- - . OpenJDK Windows x64. , , .



, Zing Zulu. Zing -- . Zulu, , , . Azul? ? - Zing Zulu? OpenJDK, , ? , . .



-- Java , JVM . ? ? ? - ? I/O ( ), ? , .



Joker 2013 , . , CTO Azul Systems Microsoft Java Windows Azure. .




















at java.awt.Window.(Window.java:535)

at java.awt.Frame.(Frame.java:420)

at java.awt.Frame.(Frame.java:385)

at javax.swing.JFrame.(JFrame.java:180)

at MainFrame.(MainFrame.java:253)

at Gui.create(Gui.java:18)






at Gui.main(Gui.java:49)







, Headless . , OpenJDK AWT Swing Zulu . IntelliJ IDEA . , , java.awt.headless=true :) :



D:\>D:\zulu1.7.0_25-7.0.0.0-win64\bin\java.exe -Djava.awt.headless=false -jar DCompiler.jar









- , Zulu. - Azul Systems Microsoft OpenJDK . , - JIT. , - Zing, Linux, ( ) Zulu.



Zulu Windows Azure, OpenJDK . ? ? . Zulu ? Zulu? , - Java- - . OpenJDK Windows x64. , , .



, Zing Zulu. Zing -- . Zulu, , , . Azul? ? - Zing Zulu? OpenJDK, , ? , . .



-- Java , JVM . ? ? ? - ? I/O ( ), ? , .



Joker 2013 , . , CTO Azul Systems Microsoft Java Windows Azure. .























All Articles