July 2009 usage statistics

I’ve finally got a little down time since putting out another alpha build for Paint.NET v3.5 tonight (go get it!), so I decided it was a good opportunity to update the usage statistics. The last time I posted an update was last October, and that’s way too long to have gone without an update.

Overall, usage of Paint.NET is up by 9.2%. This is based on the total hits to the update manifest text files. The slow growth isn’t too surprising since there haven’t been any (stable/mainstream) updates to Paint.NET in awhile, and hence not a lot of news or blog posts to draw people to the website. That’s okay though, as version 3.5 is coming soon (more on that in a bit!).

There aren’t too many changes in the demographics of Paint.NET users. Well, the number of French users has dropped from almost 8% down to 6.8%. Turkish has grown in popularity, jumping from 3% all the way up to 4.32% – an impressive relative increase of 44%.

The thing I’m happiest about is the rapid increase of 64-bit Windows. Last October, only 2.66% of Paint.NET users were on 64-bit, but now we’re up to 5.55%. That’s more than double! Windows XP’s share has dropped from 71.65 down to 65%, and Vista has increased slightly from 28% up to 32%. Windows 7 hasn’t even hit general availability and it’s already claiming 2.6% of the user base (which is very good!). I do not have numbers for which release of Windows 7 people are using (Beta vs. RC vs. RTW).

I even ran the numbers to see how many people are using the Paint.NET v3.5 Alpha builds. So far it’s only 0.8%, but that’s perfectly fine by me. The whole point of an alpha is to start out with a small audience! Honestly I thought the number would be less. A beta release should be available soon, and that means it will be offered via the mainstream updater for users who have opted-in to beta updates. I’m sure my inbox will be flooded the next day with crash reports 🙂

I decided to make some pie charts in Excel, for fun (although the colors it chose could use some work) :

 

And lastly, here are the numbers:

  October 2008 July 2009
Total hits 2,728,795 2,979,631
Hits per day 88,025 96,117
     
32-bit 97.34% 94.45%
64-bit 2.66% 5.55%
     
Windows XP 71.65% 64.97%
Windows 2003 0.41% 0.32%
Windows Vista / 2008 27.94% 32.14%
Windows 7 0.01% 2.57%
     
English 43.20% 42.30%
non-English 56.80% 57.70%
German 15.79% 15.75%
French 7.98% 6.80%
Portuguese 5.85% 6.05%
Spanish 5.39% 6.01%
Japanese 2.00% 2.12%
Italian 3.09% 2.99%
Polish 1.78% 1.52%
Netherlands (Dutch) 1.53% 1.26%
Russian 4.16% 5.41%
Chinese (Simplified) 0.94% 0.83%
Chinese (Traditional) 0.63% 0.60%
Turkish 3.00% 4.32%
Korean 0.47% 0.46%
All other languages 1.34% 1.23%
     
Have translations 84.71% 83.31%
Don’t have translations 15.29% 16.69%

Bold indicates a language that Paint.NET v3.36 includes a translation for.

Paint.NET v3.5 now enhanced for Windows 7 with DirectWrite

The latest alpha build of Paint.NET v3.5 will now use DirectWrite instead of GDI for the Text tool if you are running Windows 7. Get it while it’s hot: http://paintdotnet.forumer.com/viewtopic.php?f=46&t=31132

DirectWrite is a new font and text rendering system that comes with Windows 7. In Paint.NET, you’ll see the following benefits:

  • Faster text rendering. This is currently due to important architectural differences from GDI. With DirectWrite, I can render using multiple threads (performance scaling), while also not blocking the UI thread from drawing (mutexing). GDI can only render text on 1 thread at a time, and that also includes the thread responsible for the UI. DirectWrite can also benefit from GPU acceleration when things are set up correctly with Direct2D (Paint.NET only uses the software rasterization capabilities right now, but in the future who knows!).
  • Better quality text rendering. DirectWrite implements what is called “y-direction antialiasing”. The short story is that GDI apparently only does antialiasing on the horizontal axis. It can also position characters with sub-pixel accuracy … in other words, GDI uses integers and DirectWrite uses floating point.

When it comes to performance you can see the difference just by opening Paint.NET, switching to the Text tool, and clicking on the font list dropdown. In GDI you’ll see the font previews slowly trickle into view, and scrolling can get laggy and “stalled” (the difference is very pronounced if you have lots of fonts installed – I have over 2000 on my system). With DirectWrite it’s nearly instantaneous and also very zippy when scrolling. If you type many lines of text onto the canvas, Paint.NET will use up to 1 thread per line for rendering (capped by the number of cores your CPU has), and on a dual- or quad-core system the performance benefit can add up. Systems with more cores/threads/CPUs will see the most benefit for both scenarios (yes, HyperThreading helps).

I tested on a 3.6GHz Core i7 and a 1.6GHz Atom. On both systems, DirectWrite was a big performance improvement.

Also, you can turn off DirectWrite in Paint.NET by launching the program with the /disableDirectWrite command-line parameter. This is quite useful for comparing the two renderers. If you don’t know what a “command-line parameter” is, then don’t worry about it 🙂

Thanks go out to Dwanye Robinson (at Microsoft) for helping out.