|
|
Browse by Tags
All Tags » code » C#
-
After my last post, “A Safe and Asynchronous One to Many Stream Copy Through IL and Inheritance”, I ordered a few books and spent some time playing with generating IL. Along the way I’ve developed a library which allows you to make a franken-clone of any object. You pass the method an object to clone along with a hash table of values to change, it ...
-
Because .NET Streams have state, they are difficult to use in multithreaded environments. In this post I discuss ways to manage or work around problems arising from the statefulness of .NET Streams. I explain how this is possible both through traditional inheritance and also through some indulgence in hacking of object protection levels by ...
-
It's time to leave the secondary, external structure of our programs behind. If you can treat the reflected code from a programming language like an abstract data structure, why can’t you just keep the source itself in a similarly abstracted data structure? Isn’t the structure of a program more similar to a graph, than a list? Besides the momentum ...
-
Tuning the garbage collector to the specific context of the particular application can significantly improve the performance of both non-threaded and multi-threaded applications. In this post I discuss the gcConcurrent and gcServer settings which allow you to exercise some control how the Garbage Collector operates.
Articles in This ...
-
I have a new CodeProject article up which details how to make a Debugger Visualizer in the case where you need to custom serialize the object. The actual classes I build in the tutorial are only useful with our DotImage project line. However, the process of creating a Custom Serializer should be useful to any .NET ...
-
In the previous article I discussed a few of the benefits of stack allocation as well as a couple of C# keywords which help you to leverage those benefits. However, the one megabyte default stack size is too small for stack allocation to be used with a large dataset. Alternatively, in some threading situations one megabyte per thread/fiber can ...
-
Articles in This Series
Part 1 – Basic Housekeeping
Part 2 – Improving Performance Through Stack Allocation
Part 3 – Increasing the Size of your Stack
Part 4 – Choosing the Right Garbage Collector Settings
Introduction
In C#, when you create managed objects or arrays of value types, they are created on the Heap and you are passed ...
-
There are a great number of different ways to count the number of processors available to the .NET developer. In this post I will go over some of the more common methods and their pros and cons.
The Envirionment.ProcessorCount Way
Code:
Environment.ProcessorCount;
Supported Platforms:
Windows 98 Or Greater, .NET 2.0 or ...
-
One of the most often cited reasons to not use .NET is that it is initially compiled to an intermediary language (MSIL) and has to be recompiled every time you run it. In many high performance environments this wasted time is simply unacceptable. To combat this Microsoft released a tool with .NET 1.1 called NGen (Native Image Generator) which ...
|
|
|