Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Garbage Collection in .NET Framework
tanaka_733
October 26, 2013
Technology
4
2.4k
Garbage Collection in .NET Framework
プログラミング.NET Framework 第4版 座談会 での発表資料
tanaka_733
October 26, 2013
Tweet
Share
More Decks by tanaka_733
See All by tanaka_733
SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法
tanaka733
2
7.4k
Calling PowerShell from CSharp
tanaka733
0
1.1k
New Features in Visual Studio 2013
tanaka733
0
770
Starting Unity for Windows Store App
tanaka733
0
610
とあるインフラエンジニアのAzure活用
tanaka733
2
500
ぼくの考えた割と普通(c)なデプロイ戦略
tanaka733
1
9.3k
ASP.NET MVC4 Web APIをバックエンドにして作るストアとWindows Phoneプッシュ通知アプリ
tanaka733
0
1.5k
Yurufuwa_CSharp.pdf
tanaka733
0
5.1k
Windows ストアアプリで Push通知を使いこなそう
tanaka733
0
1.7k
Other Decks in Technology
See All in Technology
IBM Cloud Festa Online 2022 Summer
1ftseabass
PRO
0
200
データ分析のためのAWS Well-Architected -Data Analytics Lens-
maru1981
0
230
eBPF-based Container Networking
johnlin
2
1.1k
合同IT企業説明会から学ぶエンジニア向けの広報戦略
nagutabby
1
230
Red Hat Partner Training Portal のご紹介 / Red Hat Partner Training Portal Introduction
rhpej
0
110
Amplifyで Webアプリケーションの 堅固な土台をサクッと構築する方法
kawasakiteruo
0
220
ぼくらが選んだ次のMySQL 8.0 / MySQL80 Which We Choose
line_developers
PRO
7
2.9k
SPAとWebアプリケーションでCognitoの使い方はどう変わるのか? / How do we use cognito with SPA and web applications?
kitano_yuichi
0
380
hey BOOK
heyinc
26
290k
20220731 如何跟隨開源技術保持你的職涯發展
pichuang
0
120
大声で伝えたい!定時に帰る方法
sbtechnight
0
230
Djangoで組織とユーザーの権限管理をやってみよう #devio2022
seiichi1101
0
390
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
269
12k
Streamline your AJAX requests with AmplifyJS and jQuery
dougneiner
127
8.5k
Large-scale JavaScript Application Architecture
addyosmani
499
110k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
6
570
Web Components: a chance to create the future
zenorocha
303
40k
A designer walks into a library…
pauljervisheath
196
16k
Bash Introduction
62gerente
598
210k
Fireside Chat
paigeccino
13
1.4k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
173
8.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
19
1.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
107
16k
Build your cross-platform service in a week with App Engine
jlugia
219
17k
Transcript
None
http://tech.tanaka733.net http://www.buildinsider.net/web/iis8 http://metrostyledev.net/
None
Building a Faster Ruby Garbage Collector Twitterが、Ruby on RailsからJavaVMへ移行する理由 Ruby
2.1がガベージコレクションを変更,大規模システムでの批 判に対処
None
Garbage Collection
None
ネイティブヒープ (OS) 仮想アドレス空間(GCセグメント) .NET CLRが管理 32bitプロセス:1.5GB 近く、64bit: 8TB近くまで
マネージヒープ
None
Rocksee on Flickr viaESP
マーキング 再配置 コンパクション
None
None
空き 空き
空き 空き
空き
None
Ctd 2005 on Flickr viaESP
オブジェクトが新しいほど、生存期間は短い オブジェクトが古いほど、生存期間は長い ヒープの一部分の回収は、全体の回収より高速
gen 0 gen 1 gen 2
gen 0 gen 1 gen 2
gen 0 gen 1 gen 2
None
None
None
None
None
None
None
None
None
None
None
None
None
class MyClass { ~MyClass() { //Finalizeメソッド } }
James Cridland on Flickr viaESP
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); } }
None
None
None
http://msdn.microsoft.com/ja-jp/library/fs2xkftw(v=vs.110).aspx public void Dispose() { Dispose(true); GC.SuppressFinalize(this); }
None
None
None
None
None
None
None
None
http://msdn.microsoft.com/ja- jp/library/vstudio/ee851764(v=vs.110).aspx
None
None
プログラミング .NET Framework 第4版 http://msdn.microsoft.com/ja- jp/library/vstudio/hh156531(v=vs.110).aspx C#プログラマのための.NETアプリケーション最適化技法
using
None
None