根据内存的表现和我们的理论,我们继续利用windbg来排查一下,现在其实我们可以发现,这些对象最终还是被GC收回了,带着理论我们继续构思,GC是知道哪些对象可以终结的对吧?并且它们在变成不可到达时调用它们的终结器,在GC中会利用finalization queue来记录这些终结对象。所以说我们是不是可以查一下?如下所示,我们来看一下。
0:000> !finalizequeue ---------------------------------- Statistics for all finalizable objects (including all objects ready for finalization): MT Count TotalSize Class Name 00007ffc2dc23818 1 24 System.Net.Security.SafeCredentialReference 00007ffc2dac4238 1 24 System.WeakReference 00007ffc2d6eb908 1 24 System.WeakReference`1[[Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions, Microsoft.AspNetCore.Server.Kestrel.Core]] 00007ffc2d6e4120 1 24 System.WeakReference`1[[System.Runtime.Loader.AssemblyLoadContext, System.Private.CoreLib]] 00007ffc2d572b68 1 24 System.WeakReference`1[[Microsoft.Extensions.DependencyInjection.ServiceProvider, Microsoft.Extensions.DependencyInjection]] 00007ffc2d429258 1 24 System.WeakReference`1[[System.IO.FileSystemWatcher, System.IO.FileSystem.Watcher]] 00007ffc2dd15c20 1 32 Microsoft.Win32.SafeHandles.SafeBCryptAlgorithmHandle 00007ffc2d6de4d8 1 32 Internal.Cryptography.Pal.Native.SafeLocalAllocHandle 00007ffc2d68fa00 1 32 Internal.Cryptography.Pal.Native.SafeCertStoreHandle 00007ffc2d3a5cc0 1 32 System.Net.Quic.Implementations.MsQuic.Internal.SafeMsQuicRegistrationHandle 00007ffc2db390c8 1 40 Interop+WinHttp+SafeWinHttpHandle 00007ffc2d69a420 1 40 Internal.Cryptography.Pal.Native.SafeCertContextHandle 00007ffc2d5bea18 1 40 System.Diagnostics.EventLog 00007ffc2dc29a38 1 48 System.Net.Security.SafeFreeCredential_SECURITY 00007ffc2d963f80 2 48 System.WeakReference`1[[System.Text.RegularExpressions.RegexReplacement, System.Text.RegularExpressions]] 00007ffc2d7a3750 2 48 System.WeakReference`1[[Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.KestrelConnection, Microsoft.AspNetCore.Server.Kestrel.Core]] 00007ffc2d685e10 1 56 System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[[System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1+ThreadLocalArray[[System.Char, System.Private.CoreLib]][], System.Private.CoreLib],[System.Object, System.Private.CoreLib]] 00007ffc2d44c4d0 1 56 System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[[System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1+ThreadLocalArray[[System.Byte, System.Private.CoreLib]][], System.Private.CoreLib],[System.Object, System.Private.CoreLib]] 00007ffc2d96be68 1 64 CellStore`1[[System.Uri, System.Private.Uri]] 00007ffc2d96b780 1 64 FlagCellStore 00007ffc2d96af48 1 64 CellStore`1[[System.Object, System.Private.CoreLib]] 00007ffc2d96a5b8 1 64 CellStore`1[[OfficeOpenXml.ExcelCoreValue, Magicodes.IE.EPPlus]] 00007ffc2d6ddab8 2 64 Internal.Cryptography.Pal.Native.SafeChainEngineHandle 00007ffc2d69d528 2 64 Internal.Win32.SafeHandles.SafeRegistryHandle 00007ffc2d685bc8 2 64 Microsoft.Win32.SafeHandles.SafeWaitHandle 00007ffc2d685280 3 72 System.Threading.ThreadInt64PersistentCounter+ThreadLocalNodeFinalizationHelper 00007ffc2d5f5f50 3 72 System.Runtime.InteropServices.PosixSignalRegistration 00007ffc2d4299d0 1 72 Microsoft.Win32.SafeHandles.SafeFileHandle 00007ffc2d6e40b8 1 80 System.Runtime.Loader.DefaultAssemblyLoadContext 00007ffc2dac9ed0 2 96 PageIndex 00007ffc2d96d0c8 2 96 ColumnIndex 00007ffc2d464470 3 120 System.Gen2GcCallback 00007ffc2d40a620 1 120 System.IO.FileSystemWatcher 00007ffc2d96bc18 2 128 CellStore`1[[System.Int32, System.Private.CoreLib]] 00007ffc2dac20c8 2 144 System.Reflection.Emit.DynamicResolver 00007ffc2d680f10 3 144 System.Threading.LowLevelLock 00007ffc2d683c48 3 168 System.Threading.ThreadPoolWorkQueueThreadLocals 00007ffc2d681e80 1 176 System.Threading.LowLevelLifoSemaphore 00007ffc2dc25ef0 1 184 System.Collections.Concurrent.CDSCollectionETWBCLProvider 00007ffc2db8e658 1 184 System.Net.NetEventSource 00007ffc2db8c378 1 184 System.Net.NetEventSource 00007ffc2db38f90 1 184 System.Net.NetEventSource 00007ffc2d90c658 1 184 Microsoft.IO.RecyclableMemoryStreamManager+Events 00007ffc2d689b48 1 184 Microsoft.AspNetCore.Certificates.Generation.CertificateManager+CertificateManagerEventSource 00007ffc2d66f9f8 1 184 System.Diagnostics.Tracing.FrameworkEventSource 00007ffc2d66b720 1 184 System.Net.NetEventSource 00007ffc2d44d128 1 184 System.Buffers.ArrayPoolEventSource 00007ffc2d2e2ec8 1 184 System.Diagnostics.Tracing.NativeRuntimeEventSource 00007ffc2d694e10 1 192 System.Threading.Tasks.TplEventSource 00007ffc2d572ab0 1 192 Microsoft.Extensions.DependencyInjection.DependencyInjectionEventSource 00007ffc2d505f00 1 200 Microsoft.Extensions.Logging.EventSource.LoggingEventSource 00007ffc2db8ade8 1 224 System.Net.NameResolutionTelemetry 00007ffc2d428b08 7 224 System.Threading.PreAllocatedOverlapped 00007ffc2d563c78 1 232 System.Diagnostics.DiagnosticSourceEventSource 00007ffc2d61fe88 1 240 Microsoft.AspNetCore.Hosting.HostingEventSource 00007ffc2db6b788 8 256 System.Threading.TimerQueue+AppDomainTimerSafeHandle 00007ffc2d690270 1 280 System.Net.Sockets.SocketsTelemetry 00007ffc2db6bc80 1 296 System.Net.Http.HttpTelemetry 00007ffc2d68b998 1 336 Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.KestrelEventSource 00007ffc2dc21998 1 360 System.Net.Security.NetSecurityTelemetry 00007ffc2d2dae28 1 384 System.Diagnostics.Tracing.RuntimeEventSource 00007ffc2d66ad60 10 480 System.Net.Sockets.SafeSocketHandle 00007ffc2d2e0240 21 504 System.WeakReference`1[[System.Diagnostics.Tracing.EventSource, System.Private.CoreLib]] 00007ffc2d2b0538 9 648 System.Threading.Thread 00007ffc2d77a188 2 704 Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketReceiver 00007ffc2d90cec0 6 960 Microsoft.IO.RecyclableMemoryStream 00007ffc2d5fc658 10 1280 System.Net.Sockets.Socket 00007ffc2d68d898 4 1536 System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs 00007ffc2d2dc778 42 4704 System.Diagnostics.Tracing.EventSource+OverrideEventProvider 00007ffc2daec058 356 14240 System.Drawing.Bitmap Total 553 objects利用Windbg分析Magicodes.IE一次错误编写导致内存剧增 (2)
内容版权声明:除非注明,否则皆为本站原创文章。