ガベージコレクタや留意点など。Javaのガベージコレクション(garbage collection:GC)とは何かについてまとめています。
この記事の目次です。
1. ガベージコレクション(garbage collection:GC)とは
2. ガベージコレクタ
3. ガベージコレクションの留意点
Javaには、ガベージコレクションの機能が備わっています。 このガベージコレクション(garbage collection:GC)とは、JVMが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する機能です。
Javaプログラマムを記述する際に、あまりJVMの内部処理には注意を向けないかもしれませんが、 信頼性が高く、パフォーマンスの良いJavaシステムを構築するためには必要な知識です。 Full GCの問題などもありますのでGCの知識は身につけておきたいです。
ガベージコレクションは、ガベージコレクタと呼ばれる機能により実現されます。
メモリーは無限にあるわけではなく、限られた資源です。 Javaで何も設定しないで動かした場合、デフォルトで256MBのメモリを使います。 数十GB積んでいても設定しないと256MBです。
このように制限があるメモリを使用して、新しいオブジェクトにメモリがちゃんと割り当てられるように、 ガベージコレクタは、メモリ内を調べて、どこからも参照されなくなったメモリ領域を解放して、再割り当てされるように最適化します。
ガベージコレクションの機能でメモリ管理が自動で行われるのはいいのですが、 いつ実行されるか分からず、制御できないのが難点となる場合もあります。
ガベージコレクションが実行されるタイミングは、オブジェクトが参照されなくなった時点ではなく、 JVMに与えられるメモリが使い切られる直前になります。
ガベージコレクションが行われている間は、プログラムの動作が中断します。 ガベージコレクションが、短いタイミングで何度も実行されると、プログラムの動作が遅くなってしまいます。
JVMへのメモリの割り当てが小さすぎると頻繁にGCの処理が発生し、プログラムの動作が遅くなったり、思わぬ障害の原因となったりします。 デフォルトの256MBでは不足が生じるような大きなプログラムを動かす場合など、Full GCが頻繁に発生しないように十分なメモリの割り当てとチューニングが必要となります。 十分なマシンのメモリを用意して、JVMが使用するメモリ、ヒープ領域(New領域、Old領域)や非ヒープ領域(Permanent領域)などJava 起動オプション(-Xxxx)でチューニングする必要があります。
Javaとは?から言語の枠を超えるところまで、Java言語についてまとめています。
更新履歴になります。
スポンサーリンク
サイト内のページ
言語
C・C++
/HTML
/Java
/JavaScript
/PHP
/シェルスクリプト
開発環境
Ant
/Burp
/Eclipse
/Fiddler
/gcc
/gdb
/Git
/g++
/JDK
/JMeter
/JUnit
/Teraterm
/ZAP
技術・仕様
Ajax
/CORBA
/Jakarta EE(旧称J2EE、Java EE)
/JNI
ライブラリ/Framework/CMS
bootstrap
/jQuery
/FuelPHP
/Lucene
/MyBatis
/Seasar2
/Spring
/Struts
/WordPress
Web API
Google Maps
ITインフラOSとミドルウェア
Linux
/Windows
/シェル
ActiveMQ
/Tomcat
/MariaDB
/MySQL
/Nagios
/Redis
/Solr
ITインフラセキュリティ
公開サーバーのセキュリティ
SI
ホームページの作り方
スポンサーリンク
関連サイト内検索ツール
zealseedsおよび関連サイト内のページが検索できます。
IPアドレス確認ツール
あなたのグローバルIPアドレスは以下です。
34.239.153.44
HTMLの表示色確認ツール
パスワード生成ツール
文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。
ここに生成されます。
スポンサーリンク
Copyright (C) 2007-2024 zealseeds. All Rights Reserved. Loarding…