Jump to navigation

Poupou's Corner of the Web

Looking for perfect security? Try a wireless brick.
Otherwise you may find some unperfect stuff here...

Weblog

Big Bump

Earlier this week the Mono 2.0 branch was tagged for preview #2. Included with it, inside mono-tools, is the updated Gendarme.

Most of the changes between now and the first preview are not very visible. Like promised a lots of rules were tweaked to reduce false positives. Some of them were also optimized to be (quite a bit) faster. A big thanks to everyone for the feedback (and the patches too ;-). Hopefully I'll have time to get more fixes into the branch before the release candidate in early September.

So what's the most visible change ? Well from now on Gendarme version will match Mono version numbers. This should avoid any confusion (e.g. bug reports) concerning the versions and it also answers the feedback I received that 0.2 was not very representative of Gendarme's status.

This second preview is also a good time to update the performance table of my previous blog entry. Again I compared the time needed for Gendarme 0.0.5.1, shipped with Mono 1.9.1 (confusing heh?), versus the 2.0p2 release (less confusing :-) by executing each rule category (and default one) on all (72) Mono 2.0 assemblies.

Gendarme 0.0.5.1Gendarme 2.0 p2ChangeMean time per
rule delta
# rulestime# rulestimerules factortime factor
BadPractice 7 9.839234 13 20.940601 186% 212.83% 0.21
Concurrency 3 10.03967 6 14.167014 200% 141.11% -0.99
Correctness 7 11.229753 13 15.350205 186% 136.69% -0.42
Design 25 4.437044 33 3.738977 132% 84.27% -0.06
Exceptions 2 9.743716 7 16.194831 350% 166.21% -2.56
Interoperability4 9.044328 5 14.150847 125% 156.46% 0.57
Maintainability 0 0 6 17.895726 N/A N/A N/A
Naming 11 8.482943 12 2.145394 109% 25.29% -0.59
Performance 13 155.027838 25 33.18588 192% 21.41% -10.60
Portability 4 11.598787 5 21.198526 125% 182.77% 1.34
Security 10 6.734685 10 8.593943 100% 127.61% 0.19
Serialization 0 0 7 1.349845 N/A N/A N/A
Smells 6 652.531303 6 686.105971 100% 105.15% 5.60
UI 3 3.272789 3 0.114405 100% 3.50% -1.05
TOTAL 95 891.98209 151 855.132165 159% 95.87% -3.73
default 89 174.698965 145 67.466905 163% 38.62% -1.50

So the new total percentage of 95.87% is a bit better than the previous one (99.15%). Not surprising since the smells are taking a huge amount of time, compared to all other rules, and have not been much optimized since the first preview (but I got ideas for them too ;-).

However there's a bigger difference for the default rule set (what the console runner execute unless instructed otherwise). It nows takes 38.62% of the time (versus 57.54% for the first preview). In both cases the times are compared to the version 0.0.5.1 and includes the 56 additional rules.

The win32 installer for Gendarme 2.0p2 will be available shortly on the google group file section. Linux packages (i.e. mono-tools) should be available early next week.


8/14/2008 19:33:21 | Comments | Permalink

The views expressed on this website/weblog are mine alone and do not necessarily reflect the views of my employer.