タグ

jvmに関するkiyo_hikoのブックマーク (35)

  • Stack and Heap: Memory Management In Java (The most important Concept in Java)

    kiyo_hiko
    kiyo_hiko 2023/03/17
    Java/JVMのメモリの扱い、例えばローカル変数はCの自動変数に近いのか(スタックで回収されるのか)とか、無限エクステントなLispのレキシカル変数に近いのか、とか今まで曖昧だった。見とこう…
  • キメるClojure高速開発 - Qiita

    この記事は TIS Advent Calendar 2017 16 日目の記事です。 Clojure を仕事で使い始めてから三年が経ちました。未だに学びが多いですが、年数的には中堅 Clojurian と言える域に達してしまったので、自分なりの Clojure 観を整理したいと思い立ちました。自分にとって Clojure の最大の魅力は高速開発です。そしてそれは Clojure 自体の習熟難度と秤にかけても十分魅力的だという話を書きます。 どちらかと言えば Clojure 勉強し始めで、このまま進んでいいか迷っている人向けの内容です。 この記事は2017年時点での内容です。更新版・続編 → キメる Clojure チーム開発 そもそも Clojure とは 時は 2053 年、Skynet が人類を虐げる世界。エージェント Meier は Skynet のログにアクセスすることに成功し、S

    キメるClojure高速開発 - Qiita
  • 知らないなんてもったいない! 障害発生の原因を洗い出すOSSのJavaVM解析支援ツール「HeapStats」を使ってみよう

    避けるべき状況ですが、残念なことにこのようなことは珍しくありません。解析に必要な情報を漏らさず取得するためには、サービス開始前に入念な準備が必要ですが、現実にはそこまで時間をかけられない場合もあり、往々にして準備不足となる場合があるからです。 こういった不幸な状況を防ぐ手段の1つとして、稿では「HeapStats」というツールを利用した障害解析方法を紹介します。 HeapStatsとは 「HeapStats」は、NTT OSSセンタが開発を行い2013年にOSS(オープンソースソフトウェア)として公開したJavaVM障害解析支援ツールです。 Javaアプリケーションにおけるメモリ不足(OutOfMemoryError)やデッドロックといった障害を素早く解決することを目的として開発されました。特に、Javaヒープメモリ内の状態など、従来は高い負荷をかけて取得する必要があった情報を、低オーバ

    知らないなんてもったいない! 障害発生の原因を洗い出すOSSのJavaVM解析支援ツール「HeapStats」を使ってみよう
  • 診断ガイド 目次

    診断ガイド 目次 パート 1 Oracle JRockit JDK の概要 Oracle JRockit JDK について JRockit JVM とは JDK について JRockit JDK バージョン JRockit JDK がサポートするプラットフォーム 互換性情報 JRockit JDK インストールの内容 開発ツール デモ C ヘッダ ファイル Java Runtime Environment (JRE) Java 仮想マシン (JVM) Java SE JRE の標準機能 JRE クラス ファイルに関する注記 追加のライブラリ サンプル Attach API のサポート Oracle JRockit のドキュメント JRockit JVM のコマンドライン オプション JRockit JDK および JRockit Mission Control へのサポート JIT コンパ

    kiyo_hiko
    kiyo_hiko 2014/06/09
    Oracle JRockit JDK について
  • Javaはどのように動くのか~図解でわかるJVMの仕組み 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    Javaはどのように動くのか~図解でわかるJVMの仕組み 記事一覧 | gihyo.jp
  • http://android.mogeringo.com/archives/1983

    kiyo_hiko
    kiyo_hiko 2014/02/21
    sbclでライブラリをロードしていたらjvm.dllがないと怒られた。Pleiades同根のJavaにはない模様??JREを入れるのか
  • 用語は正しく覚えよう: システムクラスローダとブートストラップクラスローダ - masugata_kの日記

    ディスカッションの最中、どうも話がかみ合わないと思ったら用語の使い方が間違っていた、ということが時々ある。同じ概念を違う用語で呼んでいる場合はすぐに気づくので問題ない*1が、同じ用語で違う概念を指していると混乱の元凶になる。なので、ちょっと面倒ではあるが、正しい用語を1次情報に当たって確認するクセを付けてほしい。 とまあ偉そうなことを書いたが、僕自身、用語を間違って覚えていて相手を混乱させてしまった経験は枚挙に暇がない。今回もまた1つそんなことがあったので、備忘のためにここに書いておく。 間違って覚えていた用語は「システムクラスローダ (system class loader)」。java.lang.ClassLoader#getSystemClassLoader() で取得できるクラスローダのことだが、実は、JVM が内部的に持っているクラスローディング機構((JVM には、ClassL

    用語は正しく覚えよう: システムクラスローダとブートストラップクラスローダ - masugata_kの日記
    kiyo_hiko
    kiyo_hiko 2013/10/28
    わからなくなったらJava 仮想マシン仕様などの一次情報にあたろうという話。
  • Javaバイトコード入門

    1. わかる !Java バイトコード ― 30 分でわからない ?Java バイトコード入門 筑波大学大学院 システム情報工学研究科 博士後期課程 水島宏太 2. 自己紹介とか Twitter: @kmizu はてな : id:kmizushima github: http://github.com/kmizu/ 大学院生 構文解析の研究とかやってます 特に Packrat Parsing Scala 好き Scala の布教活動をあちこちでやったり JVM 好き JVM 上で動作する言語処理系 Onion を開発 3. Agenda プログラミング言語としての Java バイトコード マシンモデル 型システム 命令セット クラスファイルベリファイア ベリファイアがはじく操作の例 簡単なプログラムを javap で逆アセンブルする 役に立つかもしれない javap のオプション解説 クラ

    Javaバイトコード入門
    kiyo_hiko
    kiyo_hiko 2013/10/21
    読んだ。 一応…
  • はじめの言語の賞味期限 - Kato Kazuyoshi

    ライブドアブログの PSGI 化の話 は良いはなしだと思う。一方で、私はあんまり Perl が好きじゃないので、10年にわたって生き続けた Perl アプリケーションが、次の10年にむけてアップをはじめているのは、ちょっとしたホラーでもある。 TwitterRuby と JVM ライブドアブログが、将来に向けて mod_perl から PSGI + Starlet にかえたように、将来に向けてプログラミング言語をかえる人達も存在する。最近の事例で有名なのは、TwitterRuby から JVM 言語群への移行だろう。 OSCON Java 2011 の Twitter: From Ruby on Rails to the JVM では、JVM への移行に至った理由として Ability to handle server workloads A real concurrency

  • Javaガベージコレクションのエッセンス

    あるアプリケーションの作業にとって、スループットは最も重要なターゲットです。1つ例を挙げると、長時間実行されるバッチ処理のジョブです。ガベージコレクションが実行されている間、バッチジョブが時々1、2秒止まっても、ジョブ全体がすぐに完了すれば問題ありません。 人間が直接対話するアプリケーションから金融取引システムまで、実質的な他のすべての作業では、システムが1、2秒か、数ミリ秒以上反応しない場合、大変なことになり得ます。金融取引では、しばしば一貫した停止時間と引き換えに、スループットを犠牲にするだけの価値はあります。物理的に利用可能なメモリ量によって制限されるアプリケーションを持ったり、footprintを維持しなければならなかったりすることもあります。そのような場合、停止時間とスループットの面の両方で、パフォーマンスをあきらめなければなりません。 以下のトレードオフは度々起こります。 大部

    Javaガベージコレクションのエッセンス
    kiyo_hiko
    kiyo_hiko 2013/08/30
    メジャーコレクションのコレクターのあたりで挫折した もっと勉強しなくちゃ またいつか
  • 連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)
    kiyo_hiko
    kiyo_hiko 2013/08/16
    HotSpotVMの導入はJava1.2から。単発の小さいオブジェクトの宣言に神経質になる必要はない // エスケープ解析という技もあり、オブジェクトは速攻で消される // 陽にnullを代入するとオブジェクト浮遊を引き起こすことがある
  • 第8回 イレギュラーなヒープの動作を理解する | gihyo.jp

    Tenured領域を早く使ってしまうパターン 前回ご紹介したように、HotSpotのヒープでは、アプリケーションがオブジェクトを作成するとまずはじめにEden領域が割り当てられ、マイナーGCによってSuvivor領域、Tenured領域へと移動していく流れが一般的でした。 しかし、このパターンではないイレギュラーなパターンがいくつか存在します。 その1つが、「⁠オブジェクトが一般的なパターンに比べ、早くTenured領域に移動してしまう」というものです。 図1 Tenured領域を早く使ってしまう例 Tenured領域はメジャーGCの対象であり、メジャーGCはNew領域を対象とするマイナーGCに比べ、はるかに停止時間が長くなります。そのため、このようなパターンが頻繁に起こる場合は、メジャーGCの多発によってアプリケーションの停止時間が増加します。 図2 Tenured領域を早く使ってしまう

    第8回 イレギュラーなヒープの動作を理解する | gihyo.jp
    kiyo_hiko
    kiyo_hiko 2013/08/14
    Edenに入らないオブジェクトができた場合、それはいきなりTenuredに入る (SURVIVORは常にEdenより小さい、Edenに入らないからってOOMEで落とすよりは待ってでも実行続ける発想らしい) 短中期のオブジェクトが多い場合newを増やす
  • Javaのパフォーマンスについての9つの誤信

    JVMはプロファイリングを利用してコードの最適化を行います。対象は頻繁に利用されるコードパスのみですが,徹底的に行うことで大きな効果を上げています。JITコンパイルされたコードに関しては,現在では多くの場面において (その割合も増えつつあります) C++の実行速度を凌駕しています。 このような事実にも関わらずJavaが今でも低速なプラットフォームとして認識されているのは,おそらくは初期バージョンのJavaプラットフォームでの経験が,歴史的な負のバイアスとして働いているためでしょう。 早まった結論を出す前に,客観的な見地に立って,最新のパフォーマンス結果を評価するようにお勧めします。 2. Java コードの1行にはそれ自体で意味がある 次の短いコード行を考えてみてください: MyObject obj = new MyObject(); Java開発者ならば誰でも分かるように,このコードはオ

    Javaのパフォーマンスについての9つの誤信
  • オンラインマニュアル ページ移転のお知らせ:ミドルウェア:ソフトウェア:日立

    日立オープンミドルウェアは、お客様の既存の財産を生かしながら、高い信頼性と柔軟性、自律性を備えたITシステムの実現を支えています。

  • 第31回 Grailsライクにデスクトップアプリケーションを構築する「Griffon」 | gihyo.jp

    Griffonとは 今回はGrailsと同様の使い勝手でデスクトップアプリケーションを構築することができる「Griffon」を紹介します。Grailsは、JVM言語Groovyを使って、Ruby on RailsのようにコマンドラインベースでWebアプリケーションを構築することができるフレームです。Griffonはその使用感をデスクトップアプリケーションの開発に適用したフレームワークで、簡単なコマンドでMVC準拠のアプリケーションを構築・実行することができます。 Griffonの主な特徴としては、次のような項目が挙げられます。 シンプルなコードでMVCアプリケーションを実現できる JavaおよびGroovyの資産が利用できる 各種Groovy Builderが適用できる プラグインによる拡張が可能 AppletやJava Web Startで公開可能なパッケージ生成機能を備えている Gri

    第31回 Grailsライクにデスクトップアプリケーションを構築する「Griffon」 | gihyo.jp
  • JRuby - Wikipedia

    JRuby は、RubyインタプリタのJavaによる実装である。フリーソフトウェアであり、CPL/GPL/LGPL の3つのライセンスを採用している。JRuby はJavaと密に連携しており、インタプリタを任意のJavaアプリケーションに埋め込むことができ、JavaRubyのコード間で双方向のアクセスを可能にしている。 JRuby の主な開発者は Charles Nutter[1]、Thomas Enebo[2]、Ola Bini[3]、Nick Sieger[4] である。2006年9月、サン・マイクロシステムズは Enebo と Nutter を雇用し、仕事として JRuby の開発をさせている[2]。2007年6月、ThoughtWorks は Ola Bini を雇用し、RubyJRuby に関する仕事をさせている[3]。 2009年7月、JRubyの開発者らはサンを離れ、

    JRuby - Wikipedia
  • Javaオブジェクトのメモリ使用量

    Javaオブジェクトのメモリ使用量を計測してみました。 計測を行ったJDKはWindowsの1.4.2_04です。 基的に、Javaではプリミティブ型以外の全オブジェクトを生成するときに new演算子を使用します。 つまり、メモリ確保が行われるタイミングはnew演算子が実行される時に限られます。 全てのオブジェクト フイールド数0 フィールドが一つも無いオブジェクトを生成すると、8byteのメモリを消費します。 Object obj = new Object(); フイールド数1以上 フィールドが一つ以上あるオブジェクトを生成すると、8+α byteのメモリを消費します。 α の値は、このクラスが保持するフィールドに依存します。 フィールドの型により、消費するbyte数が異なります。 byte / boolean 1byteを消費します。 short 2byteを消費します。 int /

  • 今日の腕試し! - Javaプログラムのメモリー領域にないものは?:ITpro

    プログラムはコンピュータのメモリーを、いくつかの領域に分けて使っています。Javaプログラムでは、大きく三つの領域に分けられます。次のうち、その三つでは「ない」ものはどれでしょう? ●解答を送信いただくと、すぐに正解と詳しい解説をご覧いただけます。

    kiyo_hiko
    kiyo_hiko 2012/05/31
    某誤答が4割もあることにビビった
  • こんなやり方が…プラグインなしでWebブラウザ上でJavaを実行する·DoppioVM MOONGIFT

    DoppioVMはCoffeeScriptで作られたJavaVMです。Webブラウザ上でJavaコードをコンパイルしたり実行できます。 Webブラウザ上で実行できるJavaと言えばアプレットになりますがプラグインが嫌われる現在、あまり実行される機会も多くありません。そこでJavaScript上で動作するJavaVM、DoppioVMが開発されました。 Webブラウザ上にコンソールが表示されています。 javacもあります。 実際にコンパイルして実行もさせられます。 DoppioVMはCoffeeScriptで書かれたJavaVMとなっています。そのためJavaプラグインなしでWeb上でJavaを実行できます。コンパイルして中間コードも生成されるので、かなり格的と言えるでしょう。String、Pattern、HashMapなどがサポートされており、全てのJavaのコードが実行できる訳ではあ

    こんなやり方が…プラグインなしでWebブラウザ上でJavaを実行する·DoppioVM MOONGIFT
  • Tuning JVM for a VM - Lessons Learned, Directly from VMware - Marakana

    Ben Corrie from VMware  gave a talk on March 15, 2012 at the San Francisco Java Usergroup on tuning the JVM for a virtual machine. The event was filled to capacity, but fortunately you can find the video, slides, and a more detailed description of the talk below. The number of Java workloads running on virtualized infrastructure has been increasing exponentially over the last few years. Advancemen