I’ve been wonder for some about about metrics to evaluate the relative architectural cleanliness of various database implementations. To that end, I wrote a simple program that eat Visual Studio 7 projects files and analyzes the source files. Here are the results:
| |
Nfs Engine |
Vulcan |
Firebird 2 |
MySQL Server |
| Total Modules |
429 |
633 |
232 |
123 |
| Total Lines |
63432 |
227814 |
126274 |
214356 |
| Code Modules |
206 |
218 |
70 |
99 |
| Header Modules |
221 |
394 |
162 |
15 |
| Preprocessed Modules |
0 |
16 |
0 |
0 |
| Other Modules |
2 |
5 |
0 |
9 |
| Number Functions |
2839 |
4706 |
1633 |
4960 |
| Average Arguments |
5.00 |
8.65 |
13.08 |
7.58 |
| Average FunctionLines |
14.86 |
32.46 |
55.95 |
31.70 |
| Average Code Lines |
11.80 |
21.20 |
37.12 |
26.90 |
| Average Internal Comments |
0.94 |
6.10 |
11.92 |
2.59 |
| Average Internal WhiteSpace |
2.12 |
5.16 |
6.92 |
2.21 |
The analysis program doesn’t try to follow conditional compilation, so everything is included whether active or not.
The Netfrastructure engine is roughly equivalent in functionality to Firebird. The Netfrastructure numbers, however, are for the database engine only, excluding the Java Virtual Machine and template engine. Since the trigger and procedure language in Netfrastructure are Java, this isn’t a strict apples to apples comparison. On the other hand,the Netfrastructure engine includes the remote server, which Vulcan does not.
Read more