メモリ管ç†
目次
概è¦
プãƒã‚°ãƒ©ãƒ ã§ä½¿ç”¨ã™ã‚‹ãƒ‡ãƒ¼ã‚¿ã‚„コードã¯ç¨®é¡žã«å¿œã˜ã¦ä»¥ä¸‹ã®é ˜åŸŸã«åˆ†ã‘ã¦ä¿å˜ã•れる。
Permanenté ˜åŸŸ
ã‚¯ãƒ©ã‚¹æƒ…å ±
ãƒãƒ¼ãƒ‰ã—ãŸãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ç‰ã®ã‚¯ãƒ©ã‚¹ãƒ•ァイルãŒä¿å˜ã•れる。
JAVAç‰ã§ã¯ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã«å¤‰æ›ã•れる。
staticメンãƒãƒ¼
クラスã®ãƒ‡ãƒ¼ã‚¿ã®å†…ã€staticã§å®£è¨€ã•れãŸå¤‰æ•°ã¯ã“ã“ã«ä¿å˜ã•れる。
インスタンス変数ã¯ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹æ¯Žã«å€¤ãŒç•°ãªã‚‹ãŒã€
static変数ã¯ã‚¯ãƒ©ã‚¹ã«ä»˜ã共用ã§ï¼‘ã¤ã€‚
ã‚¹ã‚¿ãƒƒã‚¯é ˜åŸŸ
ãƒãƒ¼ã‚«ãƒ«å¤‰æ•°
メソッド内ã§å®£è¨€ã•れる変数ã¯ã“ã“ã«ä¿å˜ã•れる。
メソッドã®å‡¦ç†ãŒçµ‚了ã™ã‚‹ã¨åˆ¥ã®ãƒ¡ã‚½ãƒƒãƒ‰ã«ä¸Šæ›¸ãã•れる。
メソッド呼ã³å‡ºã—æ™‚ã®æˆ»ã‚Šã‚¢ãƒ‰ãƒ¬ã‚¹
メソッドã‹ã‚‰åˆ¥ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’呼ã³å‡ºã™éš›ã«æˆ»ã‚Šå…ˆã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’ã“ã“ã«ä¿å˜ã—ã¦ãŠã。
メソッドã®å‡¦ç†ãŒçµ‚了ã™ã‚‹ã¨åˆ¥ã®ãƒ‡ãƒ¼ã‚¿ã«ä¸Šæ›¸ãã•れる。
ãƒ’ãƒ¼ãƒ—é ˜åŸŸ
インスタンス
インスタンスを作æˆã™ã‚‹æ¯Žã«ã“ã“ã«ä¿å˜ã•れる。
å‚ç…§ãŒçµ‚了ã™ã‚‹ã¨ã‚¬ãƒ™ãƒ¼ã‚¸ã‚³ãƒ¬ã‚¯ã‚¿ã®æ¶ˆåŽ»ã®å¯¾è±¡ã¨ãªã‚‹ã€‚
動的メモリ割り当ã¦
クラスã€é…列ã€å¯å¤‰é•·æ–‡å—列型ç‰ã€
使用ã™ã‚‹ãƒ¡ãƒ¢ãƒªã‚µã‚¤ã‚ºãŒäº‹å‰ã«åˆ†ã‹ã‚‰ãªã„å ´åˆã®ãƒ¡ãƒ¢ãƒªé ˜åŸŸã®ç¢ºä¿æ–¹å¼ã€‚
ãƒ’ãƒ¼ãƒ—é ˜åŸŸã«å¤§ãã‚ã®ã‚µã‚¤ã‚ºã‚’確ä¿ã—ã¦å‰²ã‚Šå½“ã¦ã‚‹ã€‚
変数ã®ä½¿ç”¨ãŒçµ‚ã‚ã£ãŸå ´åˆã«è‡ªåˆ†ã§è§£æ”¾å‡¦ç†ã‚’行ã†å¿…è¦ãŒã‚る。
解放ã—ãªã„å ´åˆã€ãƒ—ãƒã‚»ã‚¹ãŒçµ‚了ã™ã‚‹ã¾ã§ãã®é ˜åŸŸã‚’使用ã™ã‚‹äº‹ã¯ã§ããšã€
コンピューター全体ã®ä½¿ç”¨å¯èƒ½ãªãƒ¡ãƒ¢ãƒªé ˜åŸŸãŒå¾ã€…ã«æ¸›å°‘ã—ã€æœ€çµ‚çš„ã«ã‚·ã‚¹ãƒ†ãƒ ダウンã™ã‚‹(ï¼ãƒ¡ãƒ¢ãƒªãƒªãƒ¼ã‚¯)。
「^ã€ï¼šãƒ’ãƒ¼ãƒ—é ˜åŸŸã«ä¿å˜ã™ã‚‹(C++)
System::String^ msg;
アップã‚ャスト時ã®å‹•作
ダウンã‚ャスト時ã®å‹•作
ãƒ’ãƒ¼ãƒ—é ˜åŸŸå†…ã®ã‚ªãƒ–ジェクト移動(Java)
Fromã€Toé ˜åŸŸã‚’åˆã‚ã›ã¦Survivor(生å˜è€…)é ˜åŸŸã¨å‘¼ã¶
(1)Edené ˜åŸŸ
インスタンスã¯Edené ˜åŸŸã«ä½œæˆã•れる
(2)Fromé ˜åŸŸ
Edené ˜åŸŸãŒä¸€æ¯ã«ãªã‚‹ã¨ScavengeGCã«ã‚ˆã‚Šã€Fromé ˜åŸŸã«ç§»å‹•ã•れる
(3)Toé ˜åŸŸ
Fromé ˜åŸŸãŒä¸€æ¯ã«ãªã‚‹ã¨ScavengeGCã«ã‚ˆã‚Šã€å†åº¦Fromé ˜åŸŸã«ç§»å‹•ã•れる
(4)Oldé ˜åŸŸ
From~Toé ˜åŸŸã®ç§»å‹•ãŒè¦å®šå›žæ•°ã‚’è¶…ãˆã‚‹ã¨ScavengeGCã«ã‚ˆã‚Šã€Oldé ˜åŸŸã«ç§»å‹•ã•れる
è¦å®šå›žæ•°ï¼šMaxTenuringThreshold値(デフォルト:32回)
ScavengeGCã®å‡¦ç†å›žæ•°ãŒå¢—ãˆã‚‹ç¨‹ã€ãƒ—ãƒã‚°ãƒ©ãƒ ã®å‹•作ã¯é…ããªã‚‹
ScavengeGCã®å‡¦ç†å›žæ•°ã‚’減らã™ã«ã¯å®Ÿè¡Œæ™‚ã®ãƒãƒ¥ãƒ¼ãƒ‹ãƒ³ã‚°ãŒå¿…è¦
パラメータ | æ„味 | è¦å®šå€¤ | 最大値 |
---|---|---|---|
-Xms | ãƒ’ãƒ¼ãƒ—å…¨ä½“åˆæœŸå€¤ | 6656k | |
-Xmx | ヒープ全体最大値 | ||
-XX:NewSize | Newé ˜åŸŸåˆæœŸå€¤ | calculated | |
-XX:MaxNewSize | Newé ˜åŸŸæœ€å¤§å€¤ | ||
-XX:PermSize | Permanenté ˜åŸŸåˆæœŸå€¤ | ||
-XX:MaxPermSize | Permanenté ˜åŸŸæœ€å¤§å€¤ | ||
-XX:NewRatio | Newé ˜åŸŸã¨Oldé ˜åŸŸã®æ¯”率 | 2 | |
-XX:SurvivorRatio | Newé ˜åŸŸã¨Survivoré ˜åŸŸã®æ¯”率 | 8 |
例
java ~
 -Xms2048m
 -Xmx2048m
 -XX:NewSize=128m
 -XX:MaxNewSize=128m
 -XX:PermSize=64m
 -XX:MaxPermSize=64m
 -XX:NewRatio=2
 -XX:SurvivorRatio=8