When I did the timing I timed the entire run from start to exit of the program so that includes all the time to load the JIT and to read the metadata necessary for jitting. If you put the measurements in the program the you don't count (some) of the jitting
time. I don't know how your language converts to IL for jitting. Maybe it all looks like one function?
In this case, the RAD parser uses a lot more classes so that's probably a good bit of the code. The funny thing is that I thought that would give it more of an edge but in retrospect that's not likely true at all.
In any case, the time analysis was very rough. Mostly I wanted to talk about space, hence the space details.
I guess the other thing is, it seems to be showing a 3x difference in your measurements, is that about right? Subtracting out the jit time that might be just about right. And of course have different machines with different cache (and hence gen0) sizes.
All of that matters too...
Did I mention that my articles are only approximately correct?