こんにちは。ZOZOテクノロジーズSRE部の市橋です。普段は主にAWSを用いてプロダクトのシステム構築、運用に携わっています。今回は弊チームで取り組んでいるZOZOMATのシステム改善業務の一例として、JVMの暖機運転の仕組みを取り入れた話をご紹介します。 ZOZOMATとは お客様の足を3Dで計測するために開発された計測用マットです。ZOZOMATでの計測情報をもとに、靴の推奨サイズを参照するなどのサービスをご利用いただくことが可能です。ご興味のある方はこちらをご確認ください。 JVMの暖機運転とは 今回テーマとして取り上げるJVMの暖機運転とは何かについて簡単に触れていきます。JVMではJIT(Just In Time)コンパイラによるコンパイル方式が取り入れられています。これはアプリケーションの実行前にプログラムの全てを機械語にコンパイルするのではなく、プログラムの実行時にコンパイル
IBMは、昨年9月にサンフランシスコで開催された「JavaOne 2016」で、同社が開発してきたJavaVMをJava 9の登場に合わせてオープンソース化すると発表していました。 OpenJ9はクラウドやマイクロサービスアーキテクチャに最適 OpenJ9の特徴は、高速な起動と、起動してから高速な実行速度に達するまでの時間が短いこと、メモリ消費量の小ささ、高いスループット性能など。これらはクラウドでの利用や、短時間で終了するような小さなサービスの集まりであるマイクロサービスアーキテクチャなどに適しているとされています。 Eclipse OpenJ9はソースコードのプロジェクトで、バイナリの配布は基本的には行われていません。ただし「AdoptOpenJDK」のサイトでOpenJ9によるOpenJDKが入手できます(Eclipseによる解説)。 Eclipse OpenJ9はOMRがベース O
Clojureに反対する大きな理由がJVMです。この役立たずは重いですからね。 これは、数週間前に ZA Tech のSlackで見た投稿です。休暇中にClojureの話題を何件か見たのですが、投稿者はJVMについても繰り返し言及していました。 私はこの投稿について Slack上で少しつぶやいていました が、もっと広く理解され議論されるように、本稿を書くことを決めました。 背景 以前は、私もJVMは重いと思っていました。2000年代の初めにJVMとPHPと比べていた頃の話です。当時は、.NETやColdFusionなど、別の重い製品が他にもありました。また、PerlやPythonという軽めの製品もありましたが、私はWindowsを使っていたのでActivePerlやActivePythonはやはり少し重めでした。 私が初めてJVMに対する“恐れ”を克服したのは、小規模な製品アプリを、JRu
JavaVMを論理分割したマイクロコンテナ上でJavaアプリを実行可能に。オラクルがコンテナ機能を実装したWebLogic Server 12c R2をリリース 1つのJavaVMを、パーティションによって複数の「マイクロコンテナ」に区切り、マイクロコンテナごとに別々のJavaアプリケーションを実行できる機能を備えた、WebLogic Severの新バージョン「WebLogic Server 12c R2」の国内提供を日本オラクルが開始しました。 WebLogic Serverは企業向けのWebアプリケーションサーバで、Java EE 7に完全準拠しています。 コンテナで安全分離、集約率は従来の3倍。Dockerにも対応 マイクロコンテナ内のJavaアプリケーションは管理ツールによってZipでパッケージにし、別のマイクロコンテナへ簡単に移行できるため、開発環境からテスト環境、本番環境へと迅
Java SE 8で導入されたラムダ式は、どのような仕組みで実現されているのだろうか? ラムダ式をより深く理解したいと考える読者にとって、これは気になるテーマの1つだろう。その秘密をお教えしよう。 Java SE 8で導入されたラムダ式は、Javaの言語仕様の歴史において最大級の変更だとされている。ただし、これはあくまでもJava言語の文法レベルの話であり、Javaプログラムを実行するJava仮想マシン(JVM)に新たな仕組みが導入されたわけではない。つまり、言語仕様に関する旧バージョンとの相違はコンパイラとランタイムが吸収し、バイトコードレベルでの互換性は保たれているということだ。 それでは、このような大きな変更を、既存のJVMの仕組みの中でどのように実現したのだろうか。それを知ることは、ラムダ式をより深く理解する手助けとなるかもしれない。Java SE 8のラムダ式実現の経緯と仕組みに
なんか、Java VMの改善案がでてますね。 すげー楽しそうです。 http://cr.openjdk.java.net/~jrose/pres/201407-JVMEvolution.pdf プロジェクトValhallaとプロジェクトPanamaがあります。 http://openjdk.java.net/projects/valhalla/ http://openjdk.java.net/projects/panama/ Valhallaは、Value TypesとSpecialization、PanamaはArrays 2.0とLayoutsがあります。 概要をまとめてみますが、かなり適当な解釈で書いてたりするので、細かいことはちゃんと原文みてください。 Value Types 簡単にいえば、新しい基本型を定義できるようにするというものです。 http://cr.openjdk.ja
Java仮想マシンで動作するプログラミング言語「Ceylon」のWebサイトが登場した。Ceylonはまだ開発段階にありメジャーリリースは実施されていないが、Red Hatは情報提供サイトを提供することで「Ceylon」へのコミットメントの継続を主張したい狙いがあるものと見られる。 CeylonはJava仮想マシンで動作する型セーフなプログラミング言語。Javaに強く影響を受けたプログラミング言語で、C言語風の文法に各種機能を実装している。C、Java、C#などの開発者にとっては学習コストが低く、比較的早期に開発を開始できるという特徴がある。Eclipseベースの統合開発環境が提供されている点もポイント。 同様にJava仮想マシンで動作するJavaインスパイア言語はほかにいくつもあるが、ソフトウェアベンダが積極的に開発を支援または推進しているものに、JetBrainsが開発している「Kot
「Xtend」は「Xtext」の成果物 Eclipse Foundationによって開発されているEclipseプラグインのひとつに「Eclipse Xtext」というものがある。Eclipse XtextはDSLの開発を容易にするためのフレームワーク/ツールキットであり、これを利用すればオリジナルのプログラミングを簡単に作成することができる。 Xtextの最大の特徴は、作成した言語のための開発サポート機能まで同時に用意できる点にある。通常、開発者が独自に設計した言語ではエディタによるサポート機能が使えないというデメリットがあるが、Xtextであれば、Eclipseの持つシンタックスハイライトやコード補完、コードヒントなどを備えたエディタやコードジェネレーターなどを、新しい言語でもすぐに利用することができる。もちろんベースとなる開発環境はEclipseだ。 「Eclipse Xtend」は
Java with spice! Xtend is a flexible and expressive dialect of Java, which compiles into readable Java 8 compatible source code. You can use any existing Java library seamlessly. The compiled output is readable and pretty-printed, and tends to run as fast as the equivalent handwritten Java code. Get productive and write beautiful code with powerful macros, lambdas, operator overloading and many mo
1年に1つ新しい言語を学ぶほどアグレッシブなエンジニアでなくても、たまには新しい言語で新しい世界を垣間見たくなることがあるのではないでしょうか。そんなあなたにお勧めの言語がGroovyです。 Groovyは多くのエンジニアが使っているJavaをベースにしたハイブリッド言語です。Javaが使える環境であれば、そこに http://groovy.codehaus.org/Download よりGroovyのインストーラをダウンロードしてインストールして簡単な設定をすることで、Javaのアドオンのような気楽さで使えるようになります。 Groovyに対するよくある誤解 Groovyは2003年に誕生した比較的新しい言語です。2004年にプチブームがあったためそのときの(もしかしたらあまり良くない)印象を持ち続けている方もいるのではないでしょうか。 よくある大きな誤解のひとつがGroovyのスピード
オライリーが主催するイベント「Open Source Convention 2011」が7月25日から米国ポートランドで開催されました。 その中で、TwitterがなぜRuby on RailsベースのシステムをJavaVMベースへ移行しようとしているのかを解説したセッション「Twitter: From Ruby on Rails to the JVM」が行われ、ビデオが公開されています。 13分程度の短いセッションのポイントをまとめて紹介します。 世界最大のRuby on RailsによるWebサイトをJavaVMへ移行 Twitterのアプリケーションサービスグループ、Raffi Krikorian氏 Twitterは世界中からのツイートをリアルタイムで扱っている。リアルタイム処理が、ツイッターにおけるもっとも難しい処理だ。 Twitterは、おそらく世界最大のRuby on Rail
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く