In-Depth Guide to Working with Strings in Rust
A comprehensive guide to string handling in Rust, covering types, conversions, operations, and performance best practices.
A comprehensive guide to string handling in Rust, covering types, conversions, operations, and performance best practices.
A developer compares memory management, standard libraries, and explicit allocation in Zig, Rust, Go, and C from a systems programming perspective.
Introducing GummyCat, a new open-source tool for visualizing the .NET garbage collector's memory layout and activity.
Explores unsupported methods to dump and analyze the .NET managed heap from within a C# application, detailing internal memory structures.
A simplified infographic explaining how the .NET Garbage Collector works, with links to more detailed technical articles.
Explores the hidden .NET API for creating and using frozen segments to store managed objects in native memory for performance.
Explains how to use JDK Flight Recorder's new native memory tracking events to monitor off-heap memory usage in Java applications.
Explores a C# technique to allocate class instances on the stack using unsafe code, comparing performance and limitations.
Explains the memory leak issue with C# events and demonstrates how to implement the Weak Event pattern using weak references.
Explains the .NET 5 SuppressGCTransition attribute for optimizing P/Invoke performance, including benchmarks and important caveats.
Analyzes the performance and memory impact of Java's ArrayList.clear() method, explaining its internal workings and potential memory retention.
Explains the differences and use cases for Span<T>, Memory<T>, and ReadOnlySequence<T> in C# for high-performance memory access.
Explains the risks of using .NET performance counters and how to read them directly from the registry for reliability.
Explains the pitfalls of comparing ReadOnlySpan<char> objects in C#/.NET, highlighting differences from string comparison due to memory representation.
Explores how to mutate Python tuples, which are normally immutable, by using the C Foreign Function Interface (ctypes) to directly manipulate memory.
Explains how TigerBeetle, a database written in Zig, operates using only static memory allocation for predictability and performance.
Explores using the Hare programming language for kernel development, focusing on low-level memory management and boot information structures.
Explains the .NET Garbage Collector's compacting phase, its performance benefits, and the Large Object Heap (LOH).
A deep dive into how the .NET Garbage Collector works, explaining its phases, generations, and impact on application performance.
Explains why using finalizers in C# is problematic and advocates for IDisposable for deterministic resource cleanup.