Below is a chart that compares the performance of regular queries using methods from Enumerable and compiled queries using FtLinq (lower is better):

benchmark.png

Methods like Where and Select are massively faster when recompiled with FtLinq (as much as 60x). When the input sequence is an array or List, the performance is even better. The average performance improvement for this test set is about 6x, i.e. queries compiled with FtLinq are on average 6x faster than regular Enumerable queries.

The performance data were obtained by iterating every test query - original and compiled, over a sequence of 100 elements 100000 times and recording total times. To minimize external effects on the performance run, the process was locked on a single core and given a priority boost like so:
Process.GetCurrentProcess().ProcessorAffinity = new IntPtr(1);
Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High;
Thread.CurrentThread.Priority = ThreadPriority.Highest;


Here's the data from the latest performance run: perfdata.csv

Last edited Jun 16, 2012 at 11:50 AM by tailsu, version 11

Comments

No comments yet.