Max Katz

@maxkatz6.bsky.social

Working with code and collecting teas. At @avaloniaui.net, Seattle WA

As I work on Resharper performance, I learn about limitations of .NET (at least, .NET Framework) that I wasn't aware of. Here, I shaved 1 second of CPU time on startup by... removing a call to Array.Empty<T>.

Bild

Isn't it nice living in a world where the de facto hard drive diagnostic tool for WIndows, CrystalDiskInfo, comes in four different editions - which are identical other than featuring a different anime character as the background to the main window?

Screenshots of four different editions of CrystalDiskInfo. Three of them have Japanese anime characters featured prominently in the UI for absolutely no reason other than the author thinks they look nice.

I published part 5 of my "Writing a .NET profiler in C#" series. All the foundations built in the previous articles have been moved to a library named Silhouette. In this new article, we finally have everything we need to write an actual profiler. minidump.net/writing-a-ne... #dotnet

Writing a .NET profiler in C#  -  Part 5

Part 5 of the series about using NativeAOT to write a .NET profiler in C#. We have all the foundations, we’re finally writing an actual profiler.

minidump.net

Finally had time over the holidays to realize a long-standing dream of mine: a hex editor that knows about the PE file and .NET metadata format. You can click any byte and it will show you which data structure it is in the tree. Every byte is covered. The parser is at github.com/KirillOsenko...

Screenshot of a hex editor with a PE file open, on the left there's a tree with the headers, sections and other parts of the file format. On the right there's a typical table of bytes in hex.

Did you know that you can define a DebuggerDisplayAttribute for a type from another assembly? Just add an assembly-level attribute to your code and specify the Target type: [assembly: DebuggerDisplay(@"\{Color = {Color}}", Target = typeof(Pen))]