タグ

メモリリークに関するtakami_hirokiのブックマーク (5)

  • リファレンスの循環参照によるメモリリークを Scalar::Util::weaken で解決する - naoyaのはてなダイアリー

    Perl のガベージコレクション(GC)の実装にはリファレンスカウント方式のGCが採用されています。リファレンスカウントというのは、あるデータ構造やオブジェクトがあった際、それらを参照するリファレンスの数を内部で換算して、その数が 0 になったらメモリから実体を破棄するという仕組みです。(JavaRubyなどの他言語のGC方式については 'PerlJavaRuby における GC アルゴリズム' あたりを。) リファレンスカウント式GCは、仕組みがシンプルで分かりやすい利点を持つ反面、相互参照が原因で参照を切ることができずにオブジェクトが解放されず、結果メモリリークを引き起す場合があるという欠点も持っています。 このメモリリークはバッチスクリプトや CGI のように、一度の実行で Perl のプロセスそのものが終了するプログラムではあまり問題になりませんが、デーモンプログラム、あるい

  • @IT:プロファイラでメモリリークとパフォーマンス問題を解決

    Java開発の問題解決を助ける(2) プロファイラでメモリリークとパフォーマンス問題を解決 サン・マイクロシステムズ 岡崎 隆之 2005/8/10 この連載は、Java開発を妨げるさまざまな問題の解決方法を扱います。前回はプログラムのバグを効率よく発見し解決する方法を紹介しました。第2回は、プロファイラを使ってメモリリークやパフォーマンスの問題を解決する手法を紹介します。 メモリリークとは不要になったオブジェクトが何らかの理由で解放されず、メモリ領域を無駄に占拠してしまっている状況です。このような不要なオブジェクトが積もり積もっていくと、メモリ不足でシステムが停止してしまうなどの深刻な問題を引き起こす場合があります。ではこのような深刻な問題を引き起こしてしまうメモリリークの見つけ方、解決方法を学んでいきましょう。 ■どうしてメモリリークは起こるのか では、そもそもどうしてメモリリークが起

  • JavaのGC頻度に惑わされた年末年始の苦いメモリ

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

    JavaのGC頻度に惑わされた年末年始の苦いメモリ
  • 肥え続けるTomcatと胃を痛めるトラブルハッカー (1/3) - @IT

    肥え続けるTomcatと胃を痛めるトラブルハッカー:現場から学ぶWebアプリ開発のトラブルハック(8)(1/3 ページ) 連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) メモリリークと聞いて、良いイメージを思い浮かべる開発者は少ないだろう。経験したことのある人にとっては、思い出したくない過去の記憶がよみがえるかもしれない。もしかしたら、その単語を聞くだけで胃が痛くなる人もいるかもしれない。筆者もかつてはその1人であった。 前々回の記事では、WebサーバとTomcatの間の接続において、スレッド数の不整合により発生したトラブル事例を、前回はTomcatとDBサーバの間のトラブル事例を紹介した。今回もTom

    肥え続けるTomcatと胃を痛めるトラブルハッカー (1/3) - @IT
  • 1