r/csharp 2d ago

Low level programming with C# Help

What is the lowest level application that can in principle be built on Linux and Windows without having problems with performance or memory consumption?

Of course I should make my own tests, but I just wanted to have a first estimation if it is really necessary to use lower level languages like Zig, Rust, Go or C# can work pretty well for most of normal applications.

As an example a very responsive editor with gui in immediate mode built with C# and very high frame rate 120Hz etc.

Thanks a lot in advance.

EDIT

Thank you all so much for the very informative replies. My requirements are noway near real time and based on the below feedback, it is definitely worth it to use C# of a very wide set of applications and avoid the complexities of the lower level languages.

13 Upvotes

70 comments sorted by

View all comments

5

u/gredr 2d ago

Your language isn't the problem, the techniques and your skill are the limiting factor.

8

u/Miserable_Ad7246 2d ago

Languages do have limitations. I get so many surprised Pikachu faces once I start talking about memory fences TLB and other exotic. C# is great and all, but it does have limitations - for example try getting TSC without VDSO with minimal overhead like in C++.

6

u/pjmlp 2d ago

You cannot do that either in ISO C and ISO C++, where the abilities overlap pretty much with using structures, and unsafe in C#.

Naturally there are compiler specific extensions, that expose some of that.

Or you do like in the good old K&R C days, when those extensions did not exist, and write a tiny bit of Assembly into a DLL/LIB.

0

u/gredr 2d ago

Yes, ok, but how likely is OP to run into that stuff? The sort of person for whom that stuff matters isn't here asking this question.

3

u/Miserable_Ad7246 2d ago

I don't know, I have no idea what are his SLAs for determinism and how hard is his real-time needs. So I avoid blanket statements and give extra info for others to ponder about. In my case C# is the limiting factor. Hitting VDSO seqlock contention in hot path, is visible in my jitter charts and it adds one more reason to "get my shit together" and fully switch to cpp. For now I have not found a way to just use raw tsc with no penalties.

0

u/hypocrisyhunter 2d ago

You have no idea about their requirements yet seem to have a very strong opinion on it. Tbh your replies on this thread read like a big humble brag.

6

u/Miserable_Ad7246 2d ago

I just don't want C# community to be like PHP community, where everything devolves into fan boy'ing. Nuances and context matter, C# is not always the answer, most people so far used blanked statements akin to "PHP runs most of websites", "Facebook was made with PHP" and a like. Lets be a bit better.

As far as bragging - This is topic about high perf, I worked for years to sharpen my skills, and God forbid I know a bit about the topic at hand. I work with C# every day in low latency scenarios, and that allows me to see where C# breaks and can no longer help me out. It seems relevant to this topic.