Înapoi la articole →

Cel mai recent articol

Ultima verificare

Urmăritori 0 urmăritori
Articole: 57
  1. Using NativeAOT to write a .NET GC in C#.

  2. Using NativeAOT to write a .NET GC in C#.

  3. Using NativeAOT to write a .NET GC in C#.

  4. Sometimes the most convincing performance gains deserve a second look.

  5. Using NativeAOT to write a .NET GC in C#.

  6. Using NativeAOT to write a .NET GC in C#.

  7. A short investigation that showcases one of the most common problem faced when writing a profiler.

  8. In this article, we see what are function hooks, and how to use them in .NET with Silhouette.

  9. A walkthrough of how I built a custom profiler to measure UI responsiveness, using .NET and Silhouette.

  10. Using NativeAOT to write a .NET GC in C#.

  11. Pro .NET Memory Management 2nd Edition is available!

  12. Using NativeAOT to write a .NET GC in C#.

  13. Using NativeAOT to write a .NET GC in C#.

  14. Using NativeAOT to write a .NET GC in C#.

  15. First part of a series of articles about writing a .NET Garbage Collector in C# using NativeAOT.

  16. Part 5 of the series about using NativeAOT to write a .NET profiler in C#.

  17. A look into how to use Windows Error Reporting to collect crash information for your .NET apps.

  18. When the tool you write to debug crashes crashes.

  19. A new tool to visualize the activity of the .NET garbage collector.

  20. Using unsafe hacks to walk the managed heap from within a .NET application, without relying on the debugging API.

  21. Exploring a little-known API allowing to allocate managed objects outside of the managed heap.

  22. A deep dive into the weird tricks used by the .NET allocator to align arrays of doubles.

  23. SuppressGCTransition

    Deep-dive into the SuppressGCTransition attribute introduced in .NET 5.

  24. Part 4 of the series about using NativeAOT to write a .NET profiler in C#, learning many things about native interop in the process.

  25. A surprising error occuring when using C# 7.3 with partial trust.

  26. Part 3 of the series about using NativeAOT to write a .NET profiler in C#, learning many things about native interop in the process.

  27. A faster and safer way to read .NET performance counters from within.

  28. Part 2 of the series about using NativeAOT to write a .NET profiler in C#, learning many things about native interop in the process.

  29. GC.KeepAlive may not work the way you intend when using it in async methods.

  30. The C# specification indicates that function pointers can only be used on static methods.

  31. Part 1 of the series about using NativeAOT to write a .NET profiler in C#, learning many things about native interop in the process.

  32. Using NativeAOT and ClrMD to write a native WinDbg extension in .NET.

  33. This article explains how AsyncLocal values are stored in .NET and how to retrieve them from a memory dump.

  34. How to find an instance of System.Threading.Thread by id in WinDbg, with a .NET Core memory dump.

  35. Browse memory structures from a memory dump in C#, just like you would with ClrMD, but in a more fluent way.

  36. How to tell PerfView to stop grouping unresolved functions under the same “?!?”

  37. Digging into a bug in the .NET ARM64 runtime, learning about dispatch stubs, and using that knowledge to diagnose a NullReferenceException.

  38. This story begins when one of our integrations tests started got stuck on one PR that seemingly impacted unrelated code.

  39. This is the second part of an investigation where I tried to understand why an application was randomly crashing with an AccessViolationException.

  40. Investigating a crash in a .NET application, caused by an AccessViolationException when inspecting the state of a lock.

  41. In this series of article, we’re retracing how I debugged an InvalidProgramException, caused by a bug in the Datadog profiler, from a memory dump sent by a customer.

  42. In this series of article, we’re retracing how I debugged an InvalidProgramException, caused by a bug in the Datadog profiler, from a memory dump sent by a customer.

  43. In this series of article, we’re retracing how I debugged an InvalidProgramException, caused by a bug in the Datadog profiler, from a memory dump sent by a customer.

  44. Tricked by WebRequest

    Even with years of experience, WebRequest managed to surprise me.

  45. Using startup hooks to automatically fetch GC metrics from any .net core application.

  46. How to inspect arbitrary values in the memory of a .net process on Linux… And find an unexpected bug in the process.

  47. Non-exhaustive list of code patterns to avoid in C#, either because they are risky or perform poorly.

  48. Explaining the ThreadPool starvation issue, and how it can be made worse by the way work-items are queued.

  49. Inspiration for quarantine days: how to connect a Raspberry Pi to a training bike to stream the speed to a computer and pause a video when below 20 km/h

  50. Leveraging the async machinery to transparently switch to the UI thread when needed.