GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...Shinji Takao
IBM Related Japanese technical documents - Code Patterns, Learning Path, Tutorials, etc. Please open new issue/pull requests in either English or Japanese if you would have any feedback or you would like to contribute this repo. We provide mainly "Japanese contents" by markdown text. IBM Developerの最新情報は https://developer.ibm.com/ にアクセスし、英語のコンテンツを参照してください。 このリポジトリは、IBM Developer Japan Webサイトで公開していた
Javaがヒープの管理にGCを使用しているのは、読者の皆さんもご存じの通りです。GCの手法にはいろいろありますが、HotSpot VMが採用しているのが世代別GCです。今回は、世代別GCの概要と問題点を解説したうえで、これを解決するために導入されたGarbage First GCについて説明します。 世代別GCの概要と問題点 世代別GCは若いインスタンスと時間を経たインスタンスを別々の領域に配置し、管理する手法です。これは寿命の短いインスタンスほど多いという性質をベースにしています。 若いインスタンスが配置される領域をヤング領域、時間を経たインスタンスを配置する領域をオールド領域とよび、それぞれの領域で異なるGCの手法を使用します。つまり、ヤングとオールドという世代の異なる領域を、それぞれ異なるGCで管理するのが世代別GCというわけです。 ヤング領域には高速ですが漏れのあるGCを用います。
Javaのデバッグをしていて、ステップ実行中にステップインを繰り返したらソースコードのないところに行き当たったことがあるだろう。あるいはEclipseでF3キーでクラスやメソッド・フィールドの宣言元を辿っていってソースコードのないところに行き当たったことがあるだろう。 Eclipseの場合、"Class File Editor"というものが開く。そこにはJavaのバイトコードのニーモニックがズラズラと並んでいて、「これは読めないや、ワケが分からない」と投げ出してしまったりしていないだろうか。 怖がることはない。ちょっとコツを掴めばすぐに読めるようになる。 Class File Editorの開き方 自前のJavaクラスの場合、ビルドして出来上がったclassファイルを開く必要がある。"Package Explorer"だとclassファイルは隠されていて見えないのでWindow -> Sh
ゴールデンウィークに特に予定のなかった筆者は,「ちまたで噂のGoogle App Engine for Java(GAE/J)とFlexでスケジュール共有ツールでも作ってみよう」と思い立ちました。およそ5日間かけて開発を進めたのち,2009年5月6日に「ご都合.com(画面1)」を公開しました。その後,はてなブックマークやニュースサイトなどでご紹介いただいたおかげで,公開後6日で約2000人の方にご利用いただいています。 そこで本稿では,この「ご都合.com」の開発で実際に筆者が得た経験を通じて,GAE/JによるWebアプリケーション開発の実際とそのポテンシャルについて紹介します。 米Googleが2008年4月に発表したGoogle App Engine(画面2)は,「自分が開発したWebアプリケーションをGoogleのデータセンターで運用できるクラウドコンピューティング・サービス」です
本記事は、HP-UX Developer Edgeに掲載された記事を株式会社アットマーク・アイティおよび本記事の筆者が独自の判断のもとに加筆・修正したものです。 今回は、Javaにおけるヒープ・メモリ管理の詳細を説明します。JVMのヒープ・メモリの中で、新しいオブジェクトと古いオブジェクトがどのように配置されるかを理解することで、ヒープ・メモリが有効に利用されているか否かを判断することができます。また、JVMが出力するガベージ・コレクションのログを解析し、オプションの指定によってヒープ・メモリのサイズを適切にチューニングする方法を紹介します。 Java ヒープ・メモリの構造 Javaにおけるガベージ・コレクションのメカニズムを理解するには、まずヒープ・メモリの構造を知っておく必要があります。 図1は、JVM におけるヒープ・メモリの構造を示したものです。この図が示すように、ヒープ・メモリの
JDK16 jconsoleの動作例 JavalobbyにおいてJavaパフォーマンストラブルシューティングに役立つ10のツールがTop 10 Java Performance Troubleshooting Toolsとして紹介されている。OSの限定されるツールもあるため実質的には7つの紹介とみていいだろう。Javaのパフォーマンス分析といえばJDK 6 Update 7からJava VisualVMが同梱されるなど今後のさらなる発展が期待される分野だ。同文書で紹介されているツールは次のとおり。 jconsole - JDK1.5およびそれ以降のバージョンに同梱されているJavaモニタリングおよびコンソール管理ツール。JMX互換のグラフィカルツールでローカルで動作しているJava仮想マシンもリモートで動作しているJava仮想マシンもどちらもモニタリング可能 VisualVM - 高性能な
【追記 2008/7/2】とても昔のClosureについて書いた記事が注目を集めてしまったみたいですが、ぜひ、もっと後で書いた次の記事とその関連スレッドの方も確認してみてください。このときよりも、もう少し事情が分かってから書いたものなので、より正確に状況を理解できると思います。それに、私自身、この言葉にはまだ混乱しています・・・ http://d.hatena.ne.jp/lethevert/20070524/p2 - という問いに対して、そろそろ私の結論を整理しておきます。 これは、将来の自分に対する参照の便のための整理です。 前提知識 前提知識として、こちらの内容を読んで理解しておきます。 Closure (computer programming) - Wikipedia [id:lethevert:20060119:p1] [id:lethevert:20060121:p2] また
最近流行の古代、近代、現代パターンで、Webアプリケーションのアーキテクチャを振り返ってみたいと思います。 古代に生まれたStrutsですが、実は結構完成度が高く、WebにおけるMVCパターンは、Strutsでほぼ完成しています。ViewはJSP(Velocityもあり)とタグライブラリで決まり、ControllerもActionで決まり(StrutsそのものもControllerに分類する場合もあり)でしたが、モデルの実装方法は、決定的なものがありませんでした。 実は、モデルには、アプリケーションモデルとドメインモデルがありますが、この辺の考えも明確なものがありません。アプリケーションモデルという言葉は、あまり聞いたことがない方もいるかもしれませんが、SmalltalkのMVCは、既にそうなっているようです。 モデルをデータのみから成るドメインモデルと,アプリケーション固有の情報から成る
本連載では今話題のフレームワーク「Ruby on Rails(以下、Rails)」と現在Webアプリケーション開発で主流であるJavaのフレームワーク群を比較していきます。 比較軸については、開発に関する事項(生産性やメンテナンス性など)を中心に解説していきます。第1回の今回はO/Rマッピングを提供するフレームワークについてです。 O/Rマッピングとは、オブジェクトとRDBのテーブルをマッピングすることをいいます。O/Rマッピングフレームワークはオブジェクト指向とRDBの仲介人となることで、アプリケーションの開発生産性を向上させます。 Railsからは同梱の「ActiveRecord」というO/Rマッピングのコンポーネントを取り上げます。対してJavaのO/Rマッピングとしては、もっとも知名度が高いと考えられる「Hibernate」と、Javaの正式仕様として策定された「Java Pers
「第1回:Javaはまだまだこれからだ!」では、Java SE 7で計画されているモジュラリティの向上について解説し、それを実現するOSGiについて触れました。 今回からはOSGi仕様が実装されたEclipse Equinoxフレームワークを実際に体験していきましょう。一番身近な例としてEclipseを起動し、OSGiフレームワークの稼動の状況をみていきます。 本連載ではEclipse 3.3を基に解説を進めますが、配布パッケージによっては開発するためのプラグインが足りません。 以下のWebサイトから「Eclipse for RCP/Plugin Developper」か「Eclipse Classic」をダウンロードしてください。 上記はどちらともZIP形式で配布されています。今回はWindows用の「Eclipse Classic」をダウンロードして、任意の場所に展開してください。展開
JBoss jBPMを試そう! 第1回:JavaエンジニアのためのBPMツールとは? 著者:レッドハット 三木 雄平 公開日:2008/1/24(木) JavaエンジニアのためのBPMツール「JBoss jBPM」 昨今、多くのベンダーからBPM(Business Process Management)製品がリリースされており、導入を考えておられる方や実際に検証・開発で利用されている開発者の方も多くいらっしゃることでしょう。BPMツールは業務プロセスの「分析」「設計」「実行」「モニタリング」「改善・再構築」といったマネジメントサイクルに適応した業務フロー全体を最適化するためのものとして位置づけられるため、多機能で複雑かつ高価という側面があります。 しかし、いざこれらのツールを利用してみると必要な機能が備わっていなかったり、開発には独自仕様言語や手法の習得が必要など、導入に苦労したことはない
Javaではすべての入出力がストリームベースになっている。そのため、一度ストリームの構文を覚えてしまえば、どのようなタイプの入出力も扱えるようになる。本稿では、Javaにおけるストリームの操作方法をいくつか紹介する。 Javaの入出力(I/O)機能を利用すると、標準化されたシンプルなAPIを用いて、さまざまなデータソースからの文字やバイトデータを読み書きできるようになる。本稿では、入出力関連のクラスやインタフェースを調べ、Javaプラットフォーム上でどのような操作を行うことが可能であるかを検証する。それでは、まずJavaのストリームとは何なのかを調べてみよう。 Javaの入出力機能はすべて、文字やバイトシーケンスの流れを表す「ストリーム」という概念をもとに設計されている。Javaにおいては、ストリームはデータの読み書きを行う標準化された機構であり、Javaに含まれている可変のデータソースを
オブラブの技術文書 ここでは、オブジェクト指向技術に関する記事を、雑誌や書籍に紹介した内容も含めて、公開します。 カテゴリキーワード別に分類されています。 オブジェクト指向 オブジェクト指向全般にわたって取り扱っている記事を紹介します。 ≫GO. Java 「Java」に関連する記事を紹介します。 ≫GO. C# 「C#」に関連する記事を紹介します。 ≫GO. サルでも!シリーズ オブジェクト指向ビギナー向けの記事を紹介します。 ≫GO. UML 「UML」に関連する記事を紹介します。 ≫GO. パターン 「パターン」に関連する記事を紹介します。 ≫GO. エクストリームプログラミング 「XP」に関連する記事を紹介します。XPに興味のある方は、XP-jp [コミュニティ] のページも是非、訪れて下さい。こちらでは、より多くの技術文書を提供しています。 ≫GO. ファクタリング 「リファクタ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く