Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Garbage Collection in .NET Framework

227313c3533b7f887e1eccb63a291b23?s=47 tanaka_733
October 26, 2013

Garbage Collection in .NET Framework

プログラミング.NET Framework 第4版 座談会 での発表資料

227313c3533b7f887e1eccb63a291b23?s=128

tanaka_733

October 26, 2013
Tweet

More Decks by tanaka_733

Other Decks in Technology

Transcript

  1. None
  2. http://tech.tanaka733.net http://www.buildinsider.net/web/iis8 http://metrostyledev.net/

  3. None
  4. Building a Faster Ruby Garbage Collector Twitterが、Ruby on RailsからJavaVMへ移行する理由 Ruby

    2.1がガベージコレクションを変更,大規模システムでの批 判に対処
  5. None
  6. Garbage Collection

  7. None
  8. ネイティブヒープ (OS) 仮想アドレス空間(GCセグメント) .NET CLRが管理 32bitプロセス:1.5GB 近く、64bit: 8TB近くまで

  9. マネージヒープ

  10. None
  11. Rocksee on Flickr viaESP

  12. マーキング 再配置 コンパクション

  13. None
  14. None
  15. 空き 空き

  16. 空き 空き

  17. 空き

  18. None
  19. Ctd 2005 on Flickr viaESP

  20. オブジェクトが新しいほど、生存期間は短い オブジェクトが古いほど、生存期間は長い ヒープの一部分の回収は、全体の回収より高速

  21. gen 0 gen 1 gen 2

  22. gen 0 gen 1 gen 2

  23. gen 0 gen 1 gen 2

  24. None
  25. None
  26. None
  27. None
  28. None
  29. None
  30. None
  31. None
  32. None
  33. None
  34. None
  35. None
  36. None
  37. class MyClass { ~MyClass() { //Finalizeメソッド } }

  38. James Cridland on Flickr viaESP

  39. System.IDisposable static void Main(string[] args) { FileStream fs = null;

    try { fs = new FileStream("Temp.txt", FileMode.Create); fs.Write(new byte[]{1, 2, 3, 4}, 0 , 4); } finally { if (fs != null) { fs.Dispose(); } } } static void Main(string[] args) { using (var fs = new FileStream("Temp.txt", FileMode.Create)) { fs.Write(new byte[] { 1, 2, 3, 4 }, 0, 4); } }
  40. None
  41. None
  42. None
  43. http://msdn.microsoft.com/ja-jp/library/fs2xkftw(v=vs.110).aspx public void Dispose() { Dispose(true); GC.SuppressFinalize(this); }

  44. None
  45. None
  46. None
  47. None
  48. None
  49. None
  50. None
  51. None
  52. http://msdn.microsoft.com/ja- jp/library/vstudio/ee851764(v=vs.110).aspx

  53. None
  54. None
  55. プログラミング .NET Framework 第4版 http://msdn.microsoft.com/ja- jp/library/vstudio/hh156531(v=vs.110).aspx C#プログラマのための.NETアプリケーション最適化技法

  56. using

  57. None
  58. None