A Brand New .NET Language: Top#

I recently implemented a full .NET programming language plus MSIL compiler.

DynaTrace to the Rescue!

DynaTrace from Compuware is one of the world’s leading monitoring and profiling tools for live / production environments. It works in both Java and .NET environments and enables you to quickly perform root cause analysis on anything from performance bottlenecks to error storms. There are various vendors in the Application Performance Management (APM) space, including AppDynamics and the cloud-based New Relic. Most of these other products are more geared towards monitoring, whereas DynaTrace is more geared towards profiling, which is better suited for the way troubleshooting normally works, in my opinion. DynaTrace has both a browser and a server component, and by using both it’s possible to understand what happens all the way through a request. The browser component called Ajax Edition is free, whereas the server component comes with a (substantial) license cost. My focus is on the server component, which in brief terms requires a “collector” server to be installed on-site and “agent” services to be installed on each server you want monitored/profiled. Depending on the amount of assemblies and namespaces being instrumented, this leads to a performance degradation of typically between 10-25% on the server — a price often worth paying in order to troubleshoot live incidents. A “client” application is then used to connect to the server and analyze data as it streams in. This may sound a little bit complicated, but it’s actually very easy and quick to setup. Over the last 3-4 years, I have used DynaTrace on a more or less daily basis to perform the following tasks: Understand performance patterns in dev / test environments during code review Understand performance bottlenecks in live / production environments Troubleshoot live incidents, particularly related to database and external integration points Because of confidentialy constraints, I can’t show client screenshots,...

Create Your Own CLR Profiler in C#

Here’s how to build a CLR profiler in C# that can be used in dev and test scenarios.