Performance Improvements in .NET 7

Wirth Language Evolution

Untangling Lifetimes: The Arena Allocator

Issue #271



Yo yo yo
Sorry that I was MIA for the past two weeks. I was working on the infrastructure for the newsletter. I've spent the past couple of days porting the website to a server-side rendered version (it was statically generated before), because I want to experiment with SvelteKit and some novel features that are difficult to implement on a statically generated website. I'm nearly done, just need to figure out sitemap generation.
The next thing I'm going to implement is user accounts. I'd like to make some stuff for the website that requires an account (probably secured through an email magic link because I don't want to have to deal with password management).
In other news, I'm not at all a car guy (never had one), but I've been really enjoying The Grand Tour. Just some fantastic cinematography and banter.
Anyway, here's the issue.
PS. I've built some cool stuff the past two weeks and have been thinking about potentially spinning them out into products. One would be an upgraded/filtered version of my article feed (where I source all of the articles for this newsletter) that you could have access to for $10 / month. The other would be an article summarizing tool, where you can input a URL and get an article summary back out, at something like 50 cents per article, with five free summaries every day. If you have the 45 seconds to reply to this email and tell me what you think (let me know if you'd be interested or tell me they are crap ideas, just be honest), I'd really appreciate it.


Performance Improvements in .NET 7

Published: 31 August 2022
Tags: c#, dotnet

The Stephen Toub writes about how performance is a key focus in the development of .NET 7 and how there has been a lot of progress made in this area in the last year. Stephen goes on to say that there are almost 1000 performance-related Pull Requests (out of 7000 total). The article covers: JIT, GC, Native AOT, Mono, Reflection, Interop, Threading, Primitive Types and Numerics, Arrays, Strings, and Spans, Regex, Collections, LINQ, File I/O, Compression, Networking, JSON, XML, Cryptography, Diagnostics, Exceptions, Registry, and Analyzers. It's way too long for highlights, just read it.


Wirth Language Evolution

Published: 22 September 2022
Tags: pascal

The article is a technical analysis of the Pascal, Modula-2, and Oberon programming languages. Simon Heath starts with a brief history of each language, then dives into a more detailed analysis of their respective features and syntax. Finally, the article concludes with a comparison of the three languages.


Untangling Lifetimes: The Arena Allocator

Published: 24 September 2022
Tags: c, memory

Ryan Fleury illuminates his dislike of how it's the norm for everyone to be taught to stay away from manual memory management in C. Ryan argues that this way of thinking is nonsensical and that it's not necessary to introduce "automatic reference counting, RAII, and/or garbage collectors" as alternatives when there are simpler solutions, like the arena allocator.
Some highlights:

  • Malloc and free should rarely become the defacto memory management interfaces for a codebase
  • Memory leaks are "erased" when the program that created them errors or crashes
  • No easy way to mass free all mallocs relating to something
  • The general gist of the arena allocator is to use independent stacks to bucket memory allocations together

How did I do?

5 4 3 2 1


Want to help?

Thank you for reading! If you enjoy the newsletter, I would really appreciate you helping me spread the word by forwarding this to your friends and colleagues or sharing it on social media! Get cool stuff for your referrals using your link

Your referrals:

If you want to discuss or comment on this issue, head on over to this page at A Byte of Coding. You can also subscribe there if you're new!

Have comments or feedback? Just reply to this email or hit me up on Twitter @AByteOfCoding.

Email landed in your promotions tab? Please move it over to primary so you don't miss the latest issues in the future.
Thanks for your Support! 

Big thanks to all of the Patreon supports and company sponsors. If you want to support the newsletter you can checkout the Patreon page. It's not necessary, but it lets me know that I'm doing a good job and that you're finding value in the content.

Stats (updated daily)

Sent: 2981

Opens: 1404

Clicks: 340

Link Clicks Clicks % Unique Clicks Unique Clicks %
Performance Improvements in .NET 7 63 27.04% 66 25.38
Wirth Language Evolution 62 26.61% 70 26.92
Untangling Lifetimes: The Arena Allocator 108 46.35% 124 47.69


Back to Issues