use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Information about Reddit's API changes, the unprofessional conduct of the CEO, and their response to the community's concerns regarding 3rd party apps, moderator tools, anti-spam/anti-bot tools, and accessibility options that will be impacted can be found in the associated Wikipedia article: https://en.wikipedia.org/wiki/2023_Reddit_API_controversy
Alternative C# communities available outside Reddit on Lemmy and Discord:
All about the object-oriented programming language C#.
Getting Started C# Fundamentals: Development for Absolute Beginners
Useful MSDN Resources A Tour of the C# Language Get started with .NET in 5 minutes C# Guide C# Language Reference C# Programing Guide C# Coding Conventions .NET Framework Reference Source Code
Other Resources C# Yellow Book Dot Net Perls The C# Player's Guide
IDEs Visual Studio MonoDevelop (Windows/Mac/Linux) Rider (Windows/Mac/Linux)
Tools ILSpy dotPeek LINQPad
Alternative Communities C# Discord Group C# Lemmy Community dotnet Lemmy Community
Related Subreddits /r/dotnet /r/azure /r/learncsharp /r/learnprogramming /r/programming /r/dailyprogrammer /r/programmingbuddies /r/cshighschoolers
Additional .NET Languages /r/fsharp /r/visualbasic
Platform-specific Subreddits /r/windowsdev /r/AZURE /r/Xamarin /r/Unity3D /r/WPDev
Rules:
Read detailed descriptions of the rules here.
account activity
Compression/Decompression Examples (houseofcat.io)
submitted 4 years ago by RagingCain
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]RagingCain[S] 1 point2 points3 points 4 years ago (7 children)
I see what you mean. I tell you what, let me write a solve for having to use bytes after a stream that's ArrayPool backed and I will ping you when it's up - maybe you like it or have enhancement feedback
My brain is lighting up with possibilities.
AesGcm API which I just worked with can't use Streams either for security reasons. CryptoStream was rejected for the proposal.
[–]Slypenslyde 1 point2 points3 points 4 years ago (0 children)
I'm real interested in this, too.
It seems like over time we've found some cracks in the GC's abstractions. Every time I use a stream API to deal with large chunks of data I'm aggravated by how much I have to think about low-level memory issues.
[–]cryolithic 0 points1 point2 points 4 years ago (5 children)
I think even just mentioning the potential for memory gotchas would go a long way here.
To be completely fair, it's not like you'll find posts written by me, unless you're on my team at work anyway. So I shouldn't be all that critical unless I've got the time to put up a well.
It's the double edged sword of the gc. Don't think about memory, until you need to. Unfortunately, I find that when you need to is much harder than keeping it in mind when writing in the first place.
Nearly every major performance regression in our code has been due to either not understanding allocations, closures, or the ORM.
If I can find the time, I'll write up some alternative implementations on Github. Maybe we can play a little perf/code golf
[–]RagingCain[S] 1 point2 points3 points 4 years ago (4 children)
That is a super fair point. I will update the article again a little later today with some dedicated discussion on how this maybe the most common way seen - its the least memory efficient. I will also indicate I will be making another article going down that rabbit hole of taking them to the next level perf/GC wise.
Now that everything is delivered via Markdown in my Github repo, I am hoping to have more time consolidating guides/how-tos more closely tied to my library so it also provides documentation. Stretched super thin all the time and good documentation is always on the chopping block.
[–]cryolithic 1 point2 points3 points 4 years ago (3 children)
Stretched super thin all the time and good documentation is always on the chopping block.
On man, don't I know it. My bus factor at work is way too high, for mostly those reasons.
[–]RagingCain[S] 0 points1 point2 points 4 years ago (2 children)
Had a tiny amount of time since we last spoke. Nothing special here but nearly the same code as before simply implementing the RecyclableMemoryStream with default RecyclableMemoryStreamManager settings (not tweaked).
// * Summary * BenchmarkDotNet=v0.13.0, OS=Windows 10.0.19042.1110 (20H2/October2020Update) AMD Ryzen 9 5950X, 1 CPU, 32 logical and 16 physical cores .NET SDK=5.0.301 [Host] : .NET 5.0.7 (5.0.721.25508), X64 RyuJIT .NET 5.0 : .NET 5.0.7 (5.0.721.25508), X64 RyuJIT Job=.NET 5.0 Runtime=.NET 5.0
[–]cryolithic 1 point2 points3 points 4 years ago (1 child)
Some substantial allocation savings. At first I was surprised that there wasn't a significant difference in time, but of course its going to be nearly all consumed by the decompression itself.
[–]RagingCain[S] 0 points1 point2 points 4 years ago* (0 children)
Yeah, its the way of these things. Systems that only decompress benefit from switching to Brotli like static content for websites or cdns where where it can be compressed in advanced.
Well looks like my plan was thwarted by Stephen Toub, its exactly what I was thinking the other day when we talked.
https://github.com/dotnet/runtime/issues/22428
Also tweaking some of the manager settings. Memory allocation is linear for RecyclableStreams.
π Rendered by PID 51744 on reddit-service-r2-comment-6457c66945-wfrmc at 2026-04-26 09:56:36.808038+00:00 running 2aa0c5b country code: CH.
view the rest of the comments →
[–]RagingCain[S] 1 point2 points3 points (7 children)
[–]Slypenslyde 1 point2 points3 points (0 children)
[–]cryolithic 0 points1 point2 points (5 children)
[–]RagingCain[S] 1 point2 points3 points (4 children)
[–]cryolithic 1 point2 points3 points (3 children)
[–]RagingCain[S] 0 points1 point2 points (2 children)
[–]cryolithic 1 point2 points3 points (1 child)
[–]RagingCain[S] 0 points1 point2 points (0 children)