垃圾回收(Garbage Collection)
- 什么是垃圾回收(Garbage Collection)?它的作用是什么?
- .NET中的垃圾回收器是如何工作的?
- 什么是代(Generation)?.NET中的垃圾回收器有几代?
- 什么是根对象(Root Object)?垃圾回收器如何确定根对象?
- 什么是托管堆(Managed Heap)?它的结构是什么?
- 什么是大对象堆(Large Object Heap, LOH)?它的特点是什么?
- 什么是垃圾回收的模式(Workstation GC vs. Server GC)?它们的区别是什么?
- 什么是并发垃圾回收(Concurrent GC)?它的优点是什么?
- 什么是强制垃圾回收(Forced Garbage Collection)?如何触发?
- 什么是终结器(Finalizer)?它的作用是什么?
垃圾回收的性能优化
- 垃圾回收对应用程序性能的影响是什么?
- 如何减少垃圾回收的频率?
- 什么是对象池(Object Pooling)?它的作用是什么?
- 如何避免大对象堆(LOH)的碎片化?
- 什么是弱引用(Weak Reference)?它的作用是什么?
- 什么是
IDisposable
接口?它的作用是什么?
- 什么是
using
语句?它的作用是什么?
- 如何实现
IDisposable
接口?
- 什么是
Dispose
模式?如何正确实现它?
- 什么是
GC.Collect()
?为什么应该避免手动调用它?
内存泄漏
- 什么是内存泄漏(Memory Leak)?它是如何发生的?
- 在.NET中,内存泄漏的常见原因有哪些?
- 如何检测内存泄漏?
- 什么是事件处理程序(Event Handler)导致的内存泄漏?如何避免?
- 什么是静态变量(Static Variable)导致的内存泄漏?如何避免?
- 什么是缓存(Cache)导致的内存泄漏?如何避免?
- 什么是未释放的资源(Unmanaged Resources)导致的内存泄漏?如何避免?
- 什么是循环引用(Circular Reference)?它会导致内存泄漏吗?
- 如何使用工具(如Visual Studio Diagnostic Tools、dotMemory)检测内存泄漏?
- 什么是
WeakReference
?它如何帮助避免内存泄漏?
避免内存泄漏的最佳实践
- 如何正确释放非托管资源?
- 如何避免事件处理程序导致的内存泄漏?
- 如何避免静态变量导致的内存泄漏?
- 如何避免缓存导致的内存泄漏?
- 如何避免大对象堆(LOH)的碎片化?
- 如何正确使用
IDisposable
接口?
- 如何正确使用
using
语句?
- 如何避免循环引用导致的内存泄漏?
- 如何避免未释放的资源导致的内存泄漏?
- 如何避免过度使用终结器(Finalizer)?
工具与调试
- 如何使用Visual Studio Diagnostic Tools检测内存泄漏?
- 如何使用dotMemory检测内存泄漏?
- 如何使用PerfView分析内存使用情况?
- 如何使用WinDbg分析内存泄漏?
- 如何使用
GC.GetTotalMemory()
方法监控内存使用情况?
- 如何使用
GC.GetGeneration()
方法查看对象的代?
- 如何使用
GC.WaitForPendingFinalizers()
方法等待终结器执行?
- 如何使用
GC.AddMemoryPressure()
和GC.RemoveMemoryPressure()
方法?
- 如何使用
GC.TryStartNoGCRegion()
和GC.EndNoGCRegion()
方法?
- 如何使用
GC.GetGCMemoryInfo()
方法获取GC内存信息?
高级主题
- 什么是
SafeHandle
?它的作用是什么?
- 什么是
CriticalFinalizerObject
?它的作用是什么?
- 什么是
ConditionalWeakTable<TKey, TValue>
?它的作用是什么?
- 什么是
Memory<T>
和Span<T>
?它们如何帮助减少内存分配?
- 什么是
ArrayPool<T>
?它的作用是什么?
- 什么是
MemoryCache
?它的作用是什么?
- 什么是
ObjectPool<T>
?它的作用是什么?
- 什么是
MemoryFailPoint
?它的作用是什么?
- 什么是
GCSettings
?它的作用是什么?
- 什么是
GCNotification
?它的作用是什么?
posted @
2025-02-24 15:20
aynulily
阅读(
22)
评论()
收藏
举报