Posts

Optimizing Jint part 3: Banishing LINQ

So you want your code go fast? Just remove all occurrences of using System.Linq; and make the code compile again without it and be done with! In all seriousness, LINQ is a powerful tool, but it also has it's pitfalls. It really makes a difference if you use LINQ in the wrong places, one being the hot paths of a Javascript interpreter. Next I'm going to show examples of better performing code - it's neither prettier nor more idiomatic than the LINQ counterpart. So be warned. You should again weigh your use case and whether anything here is really needed. Jint optimization: usage of LINQ in Jint Jint used LINQ in some places and made the code quite easy to read. Jint being an interpreter, it made things unnecessarily slow however. When scripts are run there can be millions of iterations in loops, choosing the correct way of looping and collecting data can make a big difference. Removing LINQ is quite the easy optimization for libraries that have hot paths and ...

Optimizing Jint part 2: Tools of the trade

I think making performance optimizations is a great example of true engineering task, there should be numbers and evidence, always. You cannot state that something has improved unless you can show hard numbers about either reduced time to run or reduced memory usage (ideally of course both). Otherwise it's just good old feels faster . In this post we'll examine some tools and checklists when doing performance analysis.

Optimizing Jint part 1: Setting the stage

This is a story that started a year ago, but I finally had the time and motivation to write something down. I hope this story about a performance journey might give some insights to performance optimizations and how I analyze and optimize code.

Quartz.NET is now CLSCompliant!

Quartz.NET trunk was updated with Common.Logging 2.0 which was made CLSCompliant and now it was also possible to make Quartz.NET obey the requirements of Common Language System compliance with a few tweaks to the source code. At the same time I also dropped support for VS2003 and VS2005 solutions. Using VS2008 for now allows targeting .NET 2.0 and source code finally gets the sweet language features of C# 3… Maybe next little issue to dabble with could be to make Quartz.NET run under medium trust …

Getting Started With Quartz.NET – Part 2

In the previous post we did a short evaluation whether Quartz.NET would be a viable choice for a project. In this post we’ll go through the steps to get Quartz.NET up and running. Getting the distribution You will find the latest download information on Quartz.NET’s download page . Just follow the links and choose the latest binary distribution. In your case that is Quartz.NET 1.0.1. After you have have download the zip file you should extract it to some location so we can explore the distribution a bit further. What’s inside the package Quartz.NET is distributed ready to run and source included the package does not contain documentation at the moment as the latest API documentation and the tutorial are available on the project’s website. The bin folder This folder contains the actual binaries that you will need to use Quartz.NET in your application. There are separate subfolders for 1.1, 2.0 and 3.5 respectively. The database folder This folder contains the create scri...

Getting Started With Quartz.NET – Part 1

This is the first blog post on the series of posts about getting familiar with Quartz.NET . In this blog posts we dig in to the requirements and common things we might want to decide before proceeding. Evaluating whether Quartz.NET is the thing for you First of all, it’s always a good thing to evaluate whether the tool is suitable for one’s needs. It goes without saying that like any other tool, Quartz.NET is no silver bullet (but a good golden hammer I hear). The easiest way to nail it is to quote the project’s home page : Quartz.NET is a full-featured, open source job scheduling system that can be used from smallest apps to large scale enterprise systems Well big words but I believe that Quartz.NET can live up to it. Quartz.NET was ported from the famous Java Quartz  and so If you’re familiar with the Java one, you should have no trouble grasping the concepts of Quartz.NET. Quartz.NET is distributed with same license as Java version, Apache 2.0 , which in short gives plenty...

Start Your Engines

This is the famous first post! I'm starting to blog about mostly technology related things (.NET in particular), probably with special focus on my pet project, Quartz.NET .