渋谷Java #shibuyajava での発表資料です http://atnd.org/events/40140
最近加わったように見せて実はすごい昔から存在している java.lang.ref.Reference とその実装クラスである PhantomReference, SoftReference, WeakReference の 3 つ。今日はこいつらの動作について軽く見ていく。 ただその前に。java6 の幾つからかはシランけど jvisualvm なる jvm の挙動を GUI で見れるツールが提供されている。 とりあえず、下記の何の意味も無いコードを走らせたときの jvisualvm の挙動はこんな感じ。 long c = 0; List<BigDecimal> list = new ArrayList<BigDecimal>(); while (true) { Random r = new Random(); long l = r.nextLong(); list.add(new Big
ちょっとOverlayfsの実装、読んでみました(A brief report of overlayfs source code reading)
前編ではnewしたときのバイトコードについて追いましたので、後編ではバイトコード実行による現象=メモリの使い方やデータ構造について追っていきたいと思います。 なお私はSunやIBMのJVMしか扱ったことがないので、他の実装には当てはまらない内容が含まれるかもしれません。ご了承ください。 データはどこに作られるのか 当然メモリに作られます。もう少し厳密に言うと、JavaHeapに作られます。 そもそもJVMはデータをどのように扱うのか? JVM仕様書のRuntime Data Areasの節に、データを扱う6つの領域についての説明があります。 Program Counter Register JVM stacks Heap (Java Heap) Method Area Runtime Constant Pool Native Method Stacks これらの領域のうち、newされたオブ
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
ちょっと時間ができたので、知り合いのブログを読みあさってました。 すると、安藤恐竜さんとこでこんな翻訳記事を見つけました。 Track memory allocations(日本語超訳) 大半のケースでは、数多くの小さくて短命なオブジェクトが原因でGCが起動される。世代別GCのような場合には、このようなオブジェクトの回収を最適化し、頻繁にGCが起動されることを防ぐことができる。AndroidのGCは、残念ながらそのような最適化を行うことができず、パフォーマンスに影響の多い一連のコードの中で、短命なオブジェクトを作ると、そのままアプリケーションの性能にとって影響が多くなってしまう。 マジっすか?!一応原文もチェック。 Track memory allocations Most of the time, garbage collection occurs because of tons
■理想 AndroidってJavaだからメモリ管理なんてしなくてもいいよね!! なんて思っていた時代が私にもありました・・・ ■現実 @Override protected void onDestroy() { super.onDestroy(); // 画面が回転した時など、Activityが破棄されるときに呼び出されます // すべてのメモリはここで開放します // - 特に危険なのが内部クラス(MyWebChromeClientなど)、正しく開放しないとActivityが開放されません // - セットしたbackgroundのcallbackもnullにしないと開放が行われません // - webViewのdestroy()を忘れると後からGCが走ったときにVMがクラッシュします this.webView.stopLoading(); this.webView.setWebChro
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く