lynx   »   [go: up one dir, main page]

タグ

javaに関するkanno_kannoのブックマーク (29)

  • Java8のHotSpotVMからPermanent領域が消えた理由とその影響 | ギークを目指して

    今回も前回の記事につづき、Java8による変更点で未だあまり紹介されていないポイントを記事にしようと思う。 今回はJava8のHotSpotVMの話。Java8ではJEP122が取り込まれ、VMのメモリモデルが変更された。JEP122のタイトル「Remove the Permanent Generation」から想像できるとおり、Java8のHotSpotVMからは従来のPermanent領域が無くなった。 なぜ、こういった変更が行われたのだろうか?また、元々Permanent領域に格納されていた情報は何処にいってしまったのか?JVM付属のツールにどういった影響があるのか? 今回の記事ではこの点をまとめていこうと思う。 なお、HotSpotVMのメモリモデルについて詳しくない方は、先にこちらの項番(「補足 – HotSpotVMのメモリ構造概説)を読んでいただくとスムーズに読み進められるだ

    Java8のHotSpotVMからPermanent領域が消えた理由とその影響 | ギークを目指して
  • LL言語でのhot deployとJavaでのhot deploy - wyukawa's diary

    JVM Operation Casual Talksで出てた話としてJavaでhot deployってどうしてんの?ってのがありました。 hot deployっていうのはアプリケーションコードを変更してもAPサーバーを再起動せずに反映する技術です。 この辺別に僕は全然知らないし答えを持っているわけではないですが、まあちょっと興味があったのでLL言語でのhot deployとJavaでhot deployを簡単に調べたのでメモっときます。 コードを変更してAPサーバーを再起動する場合、APサーバーが止まっているときにアクセスが行くと困るので、ロードバランサから外してAPサーバーを再起動してまた戻すみたいなことをやるのがオーソドックスな方法のようですが、hot deployだとそういったことをやる必要が無くなります。 Server::Starterから学ぶhot deployの仕組み - $s

    LL言語でのhot deployとJavaでのhot deploy - wyukawa's diary
  • 初めてのJava EE 6──第1回 Java EEとは、どのようなフレームワークか? - builder by ZDNet Japan

    桜の花が色づくこの時期、新入社などを機に、初めてJava EE開発に取り組むという方は少なくないだろう。企画では3回にわたり、日オラクルのエンジニアらが最新の情報に基づく"Java EE開発のキホン"を解説する。 企画では、Java EE開発に初めて挑む方に向けて、日オラクルのエンジニアらがJava EEの基を解説する。初回となる今回は、オラクルの研修サービスであるオラクルユニバーシティで個人や企業に向けたJava SE/Java EE研修コースの企画に携わる岡田大輔氏(オラクルユニバーシティ ビジネス推進部 担当マネジャー)が、Java EEの概要を解説する。 Java EEは企業システム開発に必要な機能を標準化したフレームワーク この企画では、Java EEへの第一歩を踏み出す方に向けて、Java EE開発の基礎知識を解説していきます。次回以降は実際に手を動かしながらJava

  • Java8からはHashMapの性能のためにComparableを実装しておいた方がいい - interprism's blog

    こんにちは、andoです。 ついにJava8がリリースされたのでさっそくインストールしてみました。 Java8になってラムダ式を始め、多くの機能が追加されたのですが、既存機能についても性能改善が行われています。 人気がありそうな新機能の紹介は他の人にお任せして、今回はHashMapの変更点について確認したいと思います。 はたして既存のプログラムはJava8で実行するだけで、その恩恵を享受できるのでしょうか。 java.util.HashMap HashMapといえば使用頻度1、2を争うコレクションクラスでデータの検索、追加がO(1)で行え、 辞書的に使える事から簡易的なDTOやキャッシュ、データベースのレコード構造、さらにはListですむところでさえ数値をキーにして使う兵もいるというくらい良くも悪くも色々使えます。 それが速くなるのであれば、既存のプログラムも速くなるはず、ということでさっ

    Java8からはHashMapの性能のためにComparableを実装しておいた方がいい - interprism's blog
    kanno_kanno
    kanno_kanno 2014/04/04
    "上記からComparable実装の条件を外したケースでは現状よりさらに劣化する可能性が高い"
  • MacでJDKのバージョンを切り替える - Qiita

    Java 8がリリースされたので早速インストールしたが、まだJava 7も残しておきたいし、切り替えることもあるので調べてみた。 Macでは、 /usr/libexec/java_home を使ってJAVA_HOMEを変えるのが一番スマートっぽい。 インストールされているJDKのバージョン一覧を出す % /usr/libexec/java_home -V Matching Java Virtual Machines (2): 1.8.0, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home 1.7.0_45, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home

    MacでJDKのバージョンを切り替える - Qiita
    kanno_kanno
    kanno_kanno 2014/03/29
    “/usr/libexec/java_home”
  • List<T>よりArrayList<T>のほうが速いって本当? - Islands in the byte stream

    結論:どちらも同じなので意味的に適切だと思う方を使ってよい 発端は以下のツイートだ。 たしかに、公式ドキュメントには以下のように書いてある。 On devices without a JIT, it is true that invoking methods via a variable with an exact type rather than an interface is slightly more efficient. (So, for example, it was cheaper to invoke methods on a HashMap map than a Map map, even though in both cases the map was a HashMap.) It was not the case that this was 2x slower; the

    List<T>よりArrayList<T>のほうが速いって本当? - Islands in the byte stream
    kanno_kanno
    kanno_kanno 2014/02/09
    今じゃ色々な情報が届きやすいから鵜呑みにしないことがスキルの一つとして求められるなあ
  • GCとキャッシュの悩ましい関係 | DA BLOG

    こんにちは。新規事業推進室の石田です。 今日からDAブログに書くことになりました。よろしくお願いします。 さて、私が担当するのは、DA製品を開発する中でハマった技術的なあれこれです。 今日は、Javaのガベージコレクション(GC)について書いてみたいと思います。 DA製品でも、ひびきSm@artDBや、ひびきSALES、そして私が担当している店舗maticはJavaで開発されています。 Javaを使うことで開発者はメモリリークに頭を悩ましノイローゼになることもなくなりますが、その代償として散らかしたメモリを片付ける処理が必要になります。 これガベージコレクション(GC)です。 今日の題は、GCとキャッシュの微妙な関係についてです。 さて、Webアプリケーションのパフォーマンスを向上させる常套手段としてキャッシュがあります。 アプリケーションサーバーのメモリにオブジェクトをキャッシュしてい

    GCとキャッシュの悩ましい関係 | DA BLOG
    kanno_kanno
    kanno_kanno 2013/05/04
    コマンドラインオプションの一覧
  • TownNavi(タウンナビ)

    It All Starts Here Choose one of the premium plans and enjoy all the greatest features, industry leading performance and top of the class 24/7 live support on the market. Unlimited hardware resources, free domain, SSL & SSH also included! check 1 Website check 300 MB Disk Space check Limited Bandwidth (3 GB) close No Email Account close 24/7/365 Support close Free Domain close Daily Backups close

    TownNavi(タウンナビ)
  • 各種ブラウザーで Java (applet) を無効にする方法

    こちら(米国)では、見つかった Javaセキュリティホール(+それを利用した実際のアタック)が大問題になり、米国政府が「ただちに Java を無効にするように」と声明を出し(参照)、全国ニュースでも大きく取り上げられている。 実質的な危険があるのは Java applet なのだが、JavaJava applet の違いの分からない報道機関は、大々的に「Java が危険」と報道しており、Sun Microsystems を買収して Java を入手した Oracle にとっては大きなブランドイメージの損失だ。Oracle は火曜日には56カ所のセキュリティホールを塞いだパッチを提供するそうだが、そんなパッチでは、今回作られてしまった「Java は危ない」というイメージは拭えない。 どのみち、Java applet にはほとんど価値がないので、これを機会に無効にする人も多いようだ(

    各種ブラウザーで Java (applet) を無効にする方法
  • FIO14-J. プログラムの終了時には適切なクリーンアップを行う

    回復不可能なロジック上のエラーなど、ある種のエラーを検知した場合の対処方針としては、状態が不定のままプログラムの実行を続けることでデータが破壊される危険を冒すよりも、ただちにシステムをシャットダウンし、安定した状態でプログラムを再スタートする方が適切であろう。[ISO/IEC TR 24772:2010]のセクション6.46, "Termination Strategy [REU]" には以下のように記されている。 障害(fault)が検知された場合、システムがそれに応ずる方法は複数存在する。最も迅速かつ分かりやすい方法は、フェイルハード(fail hard)である。これは、フェイルファスト(fail fast)やフェイルストップ(fail stop)とも呼ばれ、検知された障害への対応として、システムをただちに停止することである。別の対応はフェイルソフト(fail soft)である。システ

    FIO14-J. プログラムの終了時には適切なクリーンアップを行う
    kanno_kanno
    kanno_kanno 2013/01/12
    addShutdownHookとか
  • Perm領域不足 - Kazzz's diary

    "java.lang.OutOfMemoryError"が発生しているシステムの相談を受けたのだが、調べてみると純粋にヒープが足りないのではなく、通常は早い段階でサチるはずのPerm領域が原因で発生していることが解った。 どうせプリコンパイルしたJSPクラスが大量にロードされているんじゃないかと思ったのだが、そうではなく、プロファイルの結果では以下のクラスのインスタンスが原因ではないか、という結論になった。 sun.reflect.GeneratedConstructorAccessorXXX sun.reflect.GeneratedMethodAccessorXXX こんなクラス見たことないが、どうやらリフレクションでJVMが一時的に生成するものらしい。しかし、なぜリフレクションの度にこいつらが生成されるのか皆目見当がつかない。 いずれにせよ動的に生成されるクラスであり、ロードされて次

    Perm領域不足 - Kazzz's diary
  • JUnit実践入門の読みどころ #junitbook - やさしいデスマーチ

    先日のエントリーではたくさんのブクマありがとうございます。Amazonでの予約も好調とのことで、うれしい限りです。 JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus) 作者: 渡辺修司出版社/メーカー: 技術評論社発売日: 2012/11/21メディア: 単行(ソフトカバー)購入: 14人 クリック: 273回この商品を含むブログ (69件) を見るというわけで、書影も出てきました! 思えば、JUnitのセカイというエントリーで、たくさんの「わっふる」をいただき、出版の決意を固めたわけですが、気がつくと書き始めて1年経ってました。ようやく、情報を公開できる段階まで来たわけです。 今回のエントリーでは、JUnit実践入門の発売に先立ち、書の構成と各章の概要をお伝えします。予約を迷っている方は、エントリーを読んだ上でご検討いただければ幸いです。

    JUnit実践入門の読みどころ #junitbook - やさしいデスマーチ
  • layer8.sh

    This domain may be for sale!

  • Objective-Cの『遅さ』を計測したら、JavaやC++の5倍も遅かった

    なお、メモリ消費量はtopコマンドで測ったので、かなり大雑把な数字だ。また、Cで同様の処理のコードを書くと、ほぼC++と同じ速度になる。 追記(2011/02/17 8:50):Rubyによるベンチマークを追加。 追記(2011/02/17 11:00):Smalltalkによるベンチマークを追加。ソースコードは「Smalltalkのtは小文字です」のループ回数を修正した。 追記(2011/02/17 16:00):Perlによるベンチマークを追加。 追記(2011/02/18 10:30):Java 1.6.0_22で実行した、Scalaによるベンチマークを追加。また、clang/llvmでC++とObjective Cの値を取り直し、改善が見られないのを確認。 追記(2011/02/18 14:30):Ruby 1.8.7によるベンチマークを追加。1.9.2との速度差については、@IT

    Objective-Cの『遅さ』を計測したら、JavaやC++の5倍も遅かった
  • volatileの振る舞いが分かりません。

    Javaのプログラミングを行っているのですが、volatileをつけた結果になっとくがいきません。 volatileというのは、他のスレッドによって変数の値が書き換えられる状態になるのを防ぐことができる とあるのですが、出力結果からしてそうじゃないんじゃないかと考えています。 下記のソースの実行結果がなぜそうなるのかいまいち分かっていません。 public class Thirsty { //ボトル static Bottle bottle; public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ bottle = new Bottle(2000); // ボトルから水を飲む人 class Person extends Thread { public Person(String name) { super(name)

    volatileの振る舞いが分かりません。
  • volatileとは:SJC-P対策Java用語集

    Java認定資格(SJC-P/310-035)を一発合格したい! このサイトは、そんなあなたを気で応援します!! SJC-P(310-035)対策のメルマガ問題集も好評発刊中。 ぜひあなたの受験に役立ててください。 メールマガジンの購読はもちろん無料です! 登録はこちらから→SJC-P対策メルマガ問題集 Java用語集:volatile volatile について:簡単に説明すると volatileとは Java の キーワード の一つであり、 マルチスレッドのプログラムを作成する場合に使用されることがある 修飾子 です。 volatile について:もっと詳しく Java では生成されたすべてのスレッドは メインメモリ を共有しますが、 処理の最適化などの理由で、メインメモリの内容を個々のスレッドが保持している 作業メモリにコピーして処理を行うことがあります。 このため 作業メモリ と

  • Singleton 作成時のダブルチェック

    Singleton 作成時のダブルチェックロッキングは動作が保証されていません。 マルチスレッド絡みのバグなので、障害が発生しても非常に見つけにくい物です。 ダブルチェックロッキングを使用した例 public static SingletonTest getInstance() { if (instance_ == null) { synchronized (SingletonTest.class) { ・・・・・・1 if (instance_ == null) ・・・・・・2 instance_ = new SingletonTest(); ・・・・・・3 } } return instance_; }

    kanno_kanno
    kanno_kanno 2012/05/28
    ダブルチェックロッキング
  • DOMとSAXとStAXと。 - 都元ダイスケ IT-PRESS

    こんな名前のAPIがありますね。主にXMLの読み込みを行う為のAPI群であります。SAX以外は、書き出しもできますね。そう、SAXは書き出しできないのですね、基的に。 <foo> <bar>baz</bar> </foo> っていうもの凄い単純なXMLを、これらのAPIでどのように扱うのか。比較なエントリ。 まずはDOM DOMは、パース時にXMLの内容を全てメモリ上に保持し、パース後にどの要素にもいつでもアクセスできるような環境を作り出す。 import java.io.ByteArrayInputStream; import java.io.StringWriter; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.t

    DOMとSAXとStAXと。 - 都元ダイスケ IT-PRESS
  • buildr — Apache Buildr

    This project has retired. For details please refer to its Attic page. Apache Buildr Why Buildr RocksWhat You GetWhat’s NewCredits & Notices Apache Buildr is a build system for Java-based applications, including support for Scala, Groovy and a growing number of JVM languages and tools. We wanted something that’s simple and intuitive to use, so we only need to tell it what to do, and it takes care o

  • Account Suspended

    Account Suspended This Account has been suspended. Contact your hosting provider for more information (pollux).

    Account Suspended
Лучший частный хостинг