Alois Kraus
54 posts.
- Beware of SortedSet<T> and a custom ComparerBeware of SortedSet<T> and a custom Comparer When dealing with custom data structures funny things can happen. This is especially true if multiple threads…
- Generic Resource Leak Detection with ETW and EasyHookGeneric Resource Leak Detection with ETW and EasyHook When you are tracking down handle or other leaks you usually need to resort to Windbg which is a…
- Is This A CPU Bug?Is This A CPU Bug? I see a lot of different code and issues. One interesting bug was where someone did remove a few lines of code but the regression test…
- Make WPA Simple - Symbol Loading Is Not SlowMake WPA Simple - Symbol Loading Is Not Slow When you open an etl file you normally want to see which methods were executed most often. To decode the…
- Make WPA Simple - Garbage Collection and JIT TimesMake WPA Simple - Garbage Collection and JIT Times Did you ever see a nice tool with a fancy UI and thought: Hey that thing is powerful. I will try it!…
- Windows 10 SDK With New Windows Performance Toolkit Available!Windows 10 SDK With New Windows Performance Toolkit Available! It has been a long wait to finally get the new version of the new Windows Performance…
- SpinWait Is DangerousSpinWait Is Dangerous Some bugs are easy some are hard. If you are dealing with a massive multithreaded distributed application consisting of many…
- Windows Performance Toolkit for Windows 10Windows Performance Toolkit for Windows 10 ~All are talking about Windows 10 but what about the developer Tools? Since 4/20/2015 you can also download the…
- ConcurrentCollections Can Be Prohibitively ExpensiveConcurrentCollections Can Be Prohibitively Expensive Since most of us use multiple threads we get all sorts of race conditions which we can solve with…
- What Is The Difference Between FileFlags.Random (FILE_FLAG_RANDOM_ACCESS) And FileFlags.SequentialScan (FILE_FLAG_SEQUENTIAL_SCAN)?What Is The Difference Between FileFlags.Random (FILE\FLAG\RANDOM\ACCESS) And FileFlags.SequentialScan (FILE\FLAG\SEQUENTIAL\SCAN)?
- Thread Contention EffectsThread Contention Effects Recently I have seen an interesting performance question on SO which deals with Parallel.For in .NET. The code was basically
- The Case Of Slow Visual Studio StartupThe Case Of Slow Visual Studio Startup On my home machine VS2013 starts up in 2s from my SSD. But on another Windows 7 machine it takes over 13s. I never…
- What Every Developer Must Know About Fast Garbage Collection (+ more)What Every Developer Must Know About Fast Garbage Collection (+ more) .NET is like Java a very productive environment. The increased convenience comes at…
- Does Garbage Collection Hurt?Does Garbage Collection Hurt? When dealing with application responsiveness issues you often need to get data from the actual users to be sure what is…
- ETWControler 1.0.0.0 Released!ETWControler 1.0.0.0 Released! During the end of 2013 I had a little free time to create a tool to help diagnose performance problems in distributed…
- Recently Used Files And The Windows Filesystem CacheRecently Used Files And The Windows Filesystem Cache I constantly try out new and old tools to check out if they can be useful in my daily work. Did you…
- Different Not Automatically Implies BetterDifferent Not Automatically Implies Better Recently I was digging deeper why some WCF hosted workflow application did consume quite a lot of memory…
- From Console.WriteLine To ETWFrom Console.WriteLine To ETW When I start a new project for a small tool I sprinkle throughout my code some Console.WriteLine calls to see what is going…
- How To Persist CPU and IO Priority For A ProcessHow To Persist CPU and IO Priority For A Process Recently I have looked at the system startup time of my PC which does have a quite high boot time.…
- Visualize Your Callstacks Via Flame GraphsVisualize Your Callstacks Via Flame Graphs I have found Bruce Dawson blog where he discusses the uses of Flame Graphs. Brendan Greg a Linux performance…
- Semantic Tracing For .NET 4.0Semantic Tracing For.NET 4.0 With Enterprise Library 6.0 which does only target.NET 4.5 we also have the power of semantic logging at our hands. The term…
- Profiling Code – The Microsoft WayProfiling Code – The Microsoft Way A colleague of mine asked me how he can find out why his laptop does consume 30% CPU in the SYSTEM process after it did…
- Profiling Startup Of VS2012 – SpeedTrace ProfilerProfiling Startup Of VS2012 – SpeedTrace Profiler SpeedTrace is a relatively unknown profiler made a company called Ipcas. A single professional license…
- Do Not Optimize Without MeasuringDo Not Optimize Without Measuring Recently I had to do some performance work which included reading a lot of code. It is fascinating with what ideas…
- The Truth About .NET Objects And Sharing Them Between AppDomainsThe Truth About.NET Objects And Sharing Them Between AppDomains I have written already some time ago how big a.NET object is. John Skeet as also made a…
- WMemoryProfiler is ReleasedWMemoryProfiler is Released What is it? is a managed profiling Api to aid integration testing. This free library can get managed heap statistics and…
- Simple Producer Consumer With Tasks And .NET 4Simple Producer Consumer With Tasks And.NET 4 Threading was never so easy since.NET 4 with the TPL has been released. I know I am a bit late but there are…
- How To Get Faster – Forwarding Empty ValuesHow To Get Faster – Forwarding Empty Values Last time we did have a look into the issues you get if you create many class instances. The more class…
- The Only Console Application Template You Will Ever NeedThe Only Console Application Template You Will Ever Need I create quite often some small console application to do this or that. But the standard Console…
- Fault Injection Done RightFault Injection Done Right Patrick Smacchia has shared his thoughts is a desirable thing to have. You can test 80% of your code quite easy but the edge…
- How To Break The CLR For A Cool FeatureHow To Break The CLR For A Cool Feature Did you ever want a feature but the system got in your way? In my case I wanted to to get the last thrown…
- ApiChange Is Released!ApiChange Is Released! I have been working on little tool to simplify my life and perhaps yours as developer as well. It is basically a command line tool…
- Multiline Replacement With Visual StudioMultiline Replacement With Visual Studio I had to remove some file headers in a bigger project which were all of the form
- Exception Handling Differences Between 32/64 BitException Handling Differences Between 32/64 Bit I do quite a bit of debugging .NET applications but from time to time I see things that are impossible…
- Pitfalls Of Equals/GetHashCode – How Does A Hash Table Work?Pitfalls Of Equals/GetHashCode – How Does A Hash Table Work? Come on that is easy: - bool Equals(object other) compares all member variables of another…
- Automatic Null ChecksAutomatic Null Checks I have written far too many null checks in my life. Why do we have even null values? They only seem to provoke a…
- Why Does My System Hang? Windows Kernel Debugging For DummiesWhy Does My System Hang? Windows Kernel Debugging For Dummies Did you ever wonder why your system at random times hangs? Sometimes it comes back after a…
- XmlSerializer in Action or why does my application start csc.exe processes?XmlSerializer in Action or why does my application start csc.exe processes? If you have ever wondered why your.net application has a slow startup…
- Logging is not TracingLogging is not Tracing The Enterprise Library team is trying to improve the performance of the Logging Application Block (LAB) even further. Since version…
- How To Read .NET Performance Counters CorrectlyHow To Read .NET Performance Counters Correctly Managed Performance counters are tricky (or broken, it depends how you look at them) to read when you have…
- DEVPATH Is Back!DEVPATH Is Back! Uhh What? DevPath is an environment variable that allows you specify global directories which are searched just like GAC. If you ever had…
- Measure Performance With StopwatchMeasure Performance With Stopwatch I do performance measurements quite regularly which involves to call a piece of code several times to measure how long…
- Who Scraped Over My Disk?Who Scraped Over My Disk? I have installed Windows Vista Ultimate since some month now and I still wonder what system service I have missed to get a well…
- Best Practices Not Followed - Zune Player And A German Windows XPBest Practices Not Followed - Zune Player And A German Windows XP Today I got my brand new Zune MP3 player which I did win at a Microsoft Event. Lucky me…
- Create Strong Named Assemblies - The Easy WayCreate Strong Named Assemblies - The Easy Way Strong naming has always been a complicated matter. Sometimes it is even impossible when you get unsigned…
- Cooperative Application Shutdown with the CLRCooperative Application Shutdown with the CLR All good things have to end even your perfectly working managed executable. But do you know in what…
- Lazy Vs Eager Init Singletons / Double-Check Lock PatternLazy Vs Eager Init Singletons / Double-Check Lock Pattern Singletons are the easiest programming pattern to learn which seems to be the reason why it is…
- Why .NET Tracing is not reliableWhy.NET Tracing is not reliable This time I wanted to write something about the.NET Framework that is solved not optimal of the.NET Framework. My…
- Functional Programming with C#/F#Functional Programming with C#/F# After all this hype around C# 3.0 where we will get, lambda expressions and many other thing I thought that it would be…
- Performance Quiz: Fastest way to format timePerformance Quiz: Fastest way to format time We want a good performing application but it is hard to get it right. We all know how to format strings in a…
- Store your App.Config inside SQL Server 2005Store your App.Config inside SQL Server 2005 I did submit some time ago a little fix for the Enterprise Library \\The links are working again\\ Sam…
- Assembly.LoadFrom demystifiedAssembly.LoadFrom demystified Rules are meant to be bro.. ahem expanded. Especially if everybody tells you not to do so;-). The Assembly Loader Rules are…
- Programatic Configuraton - Enterprise Library (v2.0) Logging BlockProgramatic Configuraton - Enterprise Library (v2.0) Logging Block The following code sample shows how to configure the Enterprise Library Logging Block…
- Read/Write App.config with .NET 2.0/Enterprise LibraryRead/Write App.config with .NET 2.0/Enterprise Library This time I would like to show you the most important changes in the System.Configuration namespace…
