タグ

GCに関するdmizuno55のブックマーク (4)

  • [NodeJS] 3点ヒープダンプ法を用いたメモリリークの調査を行う - YoheiM .NET

    こんにちは、@yoheiMuneです。 最近仕事でNodeJSのメモリリーク調査を行うことがあったので、その手順をブログに残しておきたいと思います。 目次 メモリリークとは メモリリークとは、プログラム稼働(サーバー稼働)していて、どんどんとメモリを使ってしまう不具合です。原因としては、ルート(NodeJSの場合はglobal変数、クライアントJSだとwindow変数)から参照できる変数が増えて残り続けることで、GC(ガベージコレクション)でメモリを解放できないことが原因です。詳しくはこちらのブログを参照ください。 メモリリークの調査では「増え続ける変数(=メモリ)は何かを特定する」ことが目的です。 事前準備 メモリリーク調査のために、いくつかの事前準備を行います。 NodeJSのv6.3以上を準備する この記事では、NodeJSの--inspectオプションを利用するために、v.6.3.

    [NodeJS] 3点ヒープダンプ法を用いたメモリリークの調査を行う - YoheiM .NET
  • JavaScriptで起こるメモリリークのパターン

    2017.02.17JavaScriptで起こるメモリリークのパターン2014年1月25日に Frontrend in Fukuoka というイベントが開催された(もう3年前か…)。その時に Browser Computing Structure というタイトルで、ブラウザの仕組みやらスクリプト処理について発表している。 たまたま当時の資料を掘り起こす機会があったので、メモリリークのサンプルを直したついでにリークする JavaScript のパターンについて書き起こしてみる。サンプルは 1000ch/memory-leak に公開してあり、手順通り操作するとメモリリークを再現できるようになっている。 GCで回収されないオブジェクトJavaScript はランタイム上で動的にメモリを確保する GC(ガベージコレクション)を採用しているので、JavaScript の書き手がメモリの確保・開放を

    JavaScriptで起こるメモリリークのパターン
  • JVM上で動くWebアプリケーションがリソースを食いつぶす原因を探るためにやったこと【Backlog Play化プロジェクト】

    ヌーラボでScalaを書くRubyistの谷です。ヌーラボでは、Backlogの開発を担当しており、最近ではBacklogJavaからScala / Play Frameworkに移行するプロジェクトのメンバーでした。 BacklogのPlay化プロジェクトでは、OutOfMemorryError(以下、OOM)の発生やCPU使用率とロードアベレージが上がったままという、Java Virtual Machine(以下、JVM)上で動くBacklogのパフォーマンスに関する問題に対処すべく、何度かHeap/Thread dumpを見る機会がありました。 私がPlay化プロジェクトで取り組んだパフォーマンス改善の知見や経験をもとに、記事では「JVMで起こったパフォーマンスの問題の切り分け方」についてお届けします。 はじめに 番環境でしばらく動かしていると、コード自体は正しく実行できるけ

    JVM上で動くWebアプリケーションがリソースを食いつぶす原因を探るためにやったこと【Backlog Play化プロジェクト】
  • 弱い参照とな - Qiita

    package references; public class Sheryl { public void sing(){ System.out.println("生き残りたい"); } } package references; import java.lang.ref.*; public class Main { public static void main(String[] args) { Sheryl strongRef = new Sheryl();//① WeakReference<Sheryl> weakRef = new WeakReference<Sheryl>(strongRef);//② strongRef = null;//③ Sheryl sheryl = weakRef.get(); if (sheryl != null){ System.out.printl

    弱い参照とな - Qiita
  • 1