[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

javaとmemoryに関するlizyのブックマーク (18)

  • エクセル読み込みをPOIからFastExcelに置き換えてパフォーマンスを改善する

    はじめに こんにちは!10 月から株式会社ログラスでエンジニアをやっています、Kyosuke です! ログラスでは、エクセルファイルをプログラムから操作する処理が一部存在しており、Apache POIというライブラリを使用しています。(以後POIと呼びます) しかし、POI には処理方式によってはメモリを多量に使用してしまうという問題があります。 今回はその対応として、まずエクセルファイルの読み込みをFastExcelというライブラリに置き換えた話を振り返っていきます。 TL;DR POIのXSSFWorkbookは、ファイルをメモリ内に読み込んで操作するため、大きなエクセルファイルを処理する際にファイルサイズ以上のメモリを必要とすることがある POI の公式ドキュメントより FastExcelは、POIより機能は劣る代わりに、読み書きともにパフォーマンスは大幅に上回る 書き込み Fast

    エクセル読み込みをPOIからFastExcelに置き換えてパフォーマンスを改善する
  • 古典的Javaガベージコレクションを理解する

    参照カウントは、オブジェクト毎のメタデータをプログラム実行に沿って(例えば、参照タイプのフィールドに新たな値を設定する時に)更新することで動作します。メタデータ更新に必要な処理はアプリケーションスレッドで行われるので、独立したアクティビティとして明確に分離することはできません。 実践的なGCアルゴリズムはGC roots — 有効(live)であることが分かっているオブジェクトのセット — から始まり、ポインタを追って有効なオブジェクトをすべて決定することで進行します。 このようなトレーシングコレクタ(tracing collector)では、グラフ理論アルゴリズムを実装することによって、ヒープメモリを有効なものと再利用可能(reclaimable)なものとに分割します。 現代的なGCの文脈においては、コンカレント(concurrent)とパラレル(parallel)が、いずれもコレクショ

    古典的Javaガベージコレクションを理解する
  • Javaのコンテナのメモリ割り当ての考え方をまきさんに教えていただいたので記録 - Mitsuyuki.Shiiba

    何度か教えていただいているので、今度こそしっかり覚えておきたくて、まきさんからのコメントを記録。 ## メモリサイズの考え方 SpringBootのアプリをコンテナとして動かす場合には768MB以上必要で、1GBくらいは割り当てる必要があるのではないかという僕のコメントに対していただいたコメント。 それは不正確..Tomcatを使う場合は最大コネクション(スレッド)がデフォルト200で+50スレッドくらい余裕を見ると250M (-Xss1M)でデフォルトのReservervedCodeCacheSize 240MとDirectMemorySize 10M加えた上にMaxMetaSpaceSizeがざっくり50Mくらい足すと550Mくらい使ってこれHeapを足すとコンテナサイズ— Toshiaki Maki (@making) November 16, 2019 その前提であればHeap 2

    Javaのコンテナのメモリ割り当ての考え方をまきさんに教えていただいたので記録 - Mitsuyuki.Shiiba
  • ZGC - オラクルの巨大ヒープ向けガベージコレクタ

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    ZGC - オラクルの巨大ヒープ向けガベージコレクタ
  • Javaパフォーマンス最後のフロンティア:ガベージコレクタの削除

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Javaパフォーマンス最後のフロンティア:ガベージコレクタの削除
  • 恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、ミドルウェア開発チームの青木(@a_o_k_i_n_g)です。将来の夢は川口浩探検隊に入ることです。 先日、弊社のアプリケーションサーバーで大量にメモリを消費するという現象に遭遇しました。アクセス頻度の低いサーバーがメモリを大量消費するという謎深いものでした。 発生当初の状況はこんな感じです。 アプリケーションサーバーでは Jetty が稼働 現象が発生した JVM は 5GB 程度のメモリを消費しており、明らかに通常ではない量のメモリを消費している 複数台のサーバーで発生していたが、全てで発生したわけではない。 また、発生したサーバーはいずれもアクセス頻度が少ないサーバーだった。 ヒープ、パーマネント、スタック ひとまず、JVM でトラブルが発生した時は何はともあれヒープダンプとスレッドダンプを見るに限ります。各種情報の取得をインフラ部隊へ依頼し、得られたヒープを解析すると、

    恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ
    lizy
    lizy 2015/02/03
    InputStreamクローズ漏れ
  • OutOfMemoryError の対応方法/Heap 分析ツール(MAT)の使い方

    OutOfMemoryError の対応方法/Heap 分析ツール(MAT)の使い方 1. Copyright (c)2014 ITOCHU Techno-Solutions CorporationCopyright (c)2014 ITOCHU Techno-Solutions Corporation OutOfMemoryError の対応方法 / Heap 解析ツール(MAT)の使い方 ソリューションビジネス部 橋 和俊 2014/6/24 2. Copyright (c)2014 ITOCHU Techno-Solutions Corporation はじめに • 発表する内容は個人の見解であり、所属する組織の公式 な見解ではありません。 • 資料の内容は正確を期するよう注意しておりますが、妥 当性や正確性について保証するものではありません。 • 資料に関しては以下の環境において

    OutOfMemoryError の対応方法/Heap 分析ツール(MAT)の使い方
  • JavaVM監視・解析ツール HeapStatsを使ってみた | Casley Deep Innovations株式会社 技術ブログ

    こんにちは!SI部の満石です。 以前、仕事JRockit Flight Recorder(現在OracleJDKに付属しているJava Flight Recorderの元になったもの)を使ったことがあり、最近出てきたHeapStatsにも興味があって使ってみたのでご紹介します。 HeapStatsとは NTT OSSセンタが開発したOSS(Open Source Software)であり、HeapStatsの日語Wikiには以下のとおりに書かれています。 HeapStats とは、JavaVM のヒープやGC状況を監視する軽量なツールで、エラーの兆候を検知してSNMPのようなリアルタイムなアラートを発します。生成するログはかなり小さいもので、GUIツールで解析することができます。HeapStatsは、次の二つのプログラムで構成されます: エージェント(agent) – JavaVMの情

    JavaVM監視・解析ツール HeapStatsを使ってみた | Casley Deep Innovations株式会社 技術ブログ
  • 富豪的 Android プログラマの為の Eclipse Memory Analyzer Tool 入門 - sandbox

    はじめに Android プログラマのみなさん、こんにちは。 今日も元気に Out Of Memory してますか? ということで、この記事では日々 OOM に悩まされる Memory 的な意味で富豪的な Android プログラマの為に、Eclipse Memory Analyzer Tool、通称 MAT の基的な使い方を紹介します。 尚、この記事は [twitter:@youten] さんが企画された裏 Android Advent Calendar 12/20 の記事ですが、内容的には比較的オモテなものになっています。 対象読者 Andoid アプリ作ってる/はじめたけど、まだ MAT を使ったことがない方 MAT を使ってみようした事はあるものの、画面から難しそうな雰囲気を察知し、起動10秒後にはそっとタブを閉じてしまった経験がある方 DDMS の基的な使い方を理解している方

    富豪的 Android プログラマの為の Eclipse Memory Analyzer Tool 入門 - sandbox
  • Androidアプリケーションのメモリ解析 - Android Zaurusの日記

    公式ブログに「Memory Analysis for Android Applications 」という記事が投稿されたので、久々に訳してみた。誤訳などあったら教えて。ただ、画像貼るの面倒だったので、家の方をクリックして拡大しつつながめてください。 ついでに、大昔に訳したメモリ3部作なんかも参考になるかも。 Androidアプリケーションのメモリ解析 Tim Brayが投稿 この投稿はPatrick Dubroyによるもの。PatrickはAndroidエンジニアで、プログラミングに関することや、ユーザビリティ、インタラクション・デザインについて個人的なブログを書いています Dalvikランタイムはガベージコレクションが働くが、だからといってメモリ管理を無視してはいけない。携帯機器でのメモリ使用には特に注意しなければならない。携帯機器はメモリ制限がきつい。この記事では、Android S

    Androidアプリケーションのメモリ解析 - Android Zaurusの日記
    lizy
    lizy 2011/04/18
    「メモリリーク」という単語は誤解を招きそう。「不用意な参照」とか?
  • NetBeansのメモリ使用量グラフからわかること - 2011-02-19 - きしだのはてな

    NetBeansでは、メニューの「表示 > ツールバー > メモリー」でメモリ使用状況をツールバーに表示させることができます。 けど、ここでは、もう少し詳しくメモリの使用状況を見るために、JConsoleを使いましょう。JConsoleは、Javaのプログラムの実行状況を見るための管理ツールです。 JConsoleプラグインのインストール JConsoleを使うには、JAVA_HOME/bin/jconsole.exeなどを起動すればいいのですが、せっかくなのでNetBeansからJConsoleを起動できるように、プラグインを入れてみましょう。 メニューの「ツール > プラグイン」を選択してプラグインダイアログを開いて、「使用可能なプラグイン」のタブから「JConsole」を選択してインストールしましょう。 そうすると、JConsole起動ボタンがツールバーに表示されるので、クリックして

    NetBeansのメモリ使用量グラフからわかること - 2011-02-19 - きしだのはてな
  • Android のメモリ管理は大変です

    ■理想 AndroidってJavaだからメモリ管理なんてしなくてもいいよね!! なんて思っていた時代が私にもありました・・・ ■現実 @Override protected void onDestroy() { super.onDestroy(); // 画面が回転した時など、Activityが破棄されるときに呼び出されます // すべてのメモリはここで開放します // - 特に危険なのが内部クラス(MyWebChromeClientなど)、正しく開放しないとActivityが開放されません // - セットしたbackgroundのcallbackもnullにしないと開放が行われません // - webViewのdestroy()を忘れると後からGCが走ったときにVMがクラッシュします this.webView.stopLoading(); this.webView.setWebChro

  • ここが大変だよ、JavaのGC/メモリ管理

    Webシステムを安定稼働させるには、考慮しなければならないことは数々存在する。システムの適切なサイジングを行うことも、その1つだ。 今回は、その中でもJavaVMのメモリのサイジング(見積もり)とGC(ガベージ・コレクション)に着目して説明する。 現象の見え方 今回は、以下の問題についての話だ。 メモリサイジングをミスした場合、業務ピーク時のGCの多発や長期化からこの現象に陥る場合がある。CPU利用率が100%に張り付いて性能が出ない場合は、GCが原因かを疑う必要がある。その場合、まずはGCログを参照し、GCの処理時間や発生頻度から1分ごとのGC処理の占有率を確認してみるとよい。 占有率が大きい場合、アプリケーションの処理やメモリのサイジングを見直す必要がある。以降では、GCを考慮したメモリのサイジングについて説明する。 JavaVMのメモリ空間はどうなっているのか 初めに、Cosmine

    ここが大変だよ、JavaのGC/メモリ管理
  • ヒープサイズを増やしてもガベージコレクションの停止時間を短いままに: Cliff Click博士とのQ&A

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    ヒープサイズを増やしてもガベージコレクションの停止時間を短いままに: Cliff Click博士とのQ&A
    lizy
    lizy 2010/04/28
    「300GBもの財務データをヒープに入れて、数百ものCPUでそのデータを並列処理」スゴイ世界だな
  • InfoQ: JavaOne: Garbage Firstガーベジコレクタ

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    InfoQ: JavaOne: Garbage Firstガーベジコレクタ
  • JavaのGC頻度に惑わされた年末年始の苦いメモリ

    JavaのGC頻度に惑わされた年末年始の苦いメモリ:現場から学ぶWebアプリ開発のトラブルハック(9)(1/3 ページ) 連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) Java言語を利用するようになって、システムを開発するうえで楽になった要素は何かというアンケートがあったとき、読者の皆さんならどのように回答するだろうか。私は迷わず、「メモリ管理」と回答する。 同時に、Javaを利用してシステム開発を行う際に、注意していること、悩まされたことは何かとアンケートがあれば、「GC(ガベージ・コレクション)」と回答するだろう。 多くのシステム開発の現場では、いまこの瞬間も、JavaのGCの挙動に悩まされ、GC

    JavaのGC頻度に惑わされた年末年始の苦いメモリ
  • オブジェクトサイズの計測とメモリリークの検出:CodeZine

    はじめに J2EE開発者にとって、「セッションは小さく」設計するのが定石ですよね。では実際にセッションサイズはどう測るのでしょうか? ほとんどの方が「予測」で済ませているのが実情です。しかし、実際に測ってみるとさまざまなことが見えてきます。 稿では、商用J2EEサーバとしてシェアの高いWebSphere Application Serverを想定し、オブジェクトのサイズを計測する方法と、その応用としてメモリリークを検出する方法を説明します。対象読者 WebSphere Application Serverを利用したシステム開発に携わる、開発者・アーキテクト。必要な環境サーバ

  • OutOfMemoryエラー発生!? GCがあるのに、なぜ?

    今回の概要 稿ではWebアプリケーションの開発プロジェクトで実際に直面したメモリに関するトラブル事例の中からjava.lang.OutOfMemoryErrorを題材としたTipsを紹介する。 帰宅直前に、突然電話が鳴り響く 業務を終えて帰宅しようとしたとある夜、突然電話が鳴る。相手は社内のプロジェクトのマネージャである。 「現在、テストを実施しているが、数分経つとOutOfMemoryErrorが発生してアプリケーションが落ちてしまう。再起動を掛けると、また順調に動くが、しばらく利用していると、同じようにOutOfMemoryErrorが発生する。メモリ不足のエラーなので、物理メモリを増やそうかと思っているが、物理メモリ増設の前に、アプリケーションという観点からメモリ不足を引き起こす問題がないか調査してほしい」 取りあえず、原因を探るために現場に急行した。 現場にてトラブルの詳細をヒア

    OutOfMemoryエラー発生!? GCがあるのに、なぜ?
  • 1