Martin Kersten wrote:
Indeed. Even in an application it becomes relevant to know how much time is actually spent at the interface. My conjuncture is that it is a few percent only, contrived cases excluded. Fastly outnumbered by even the network delays.
I can totally agree with the last statement. We are indeed talking in milliseconds. But personally, if I could make a C program with some structures that match my queries output, that would *really* make my life as programmer in object oriented fashion much better. I love to outline the pro's and con's especially related to pretty programming, but you have a point. This will only prevent a few parsing/formatting calls on Monetdb side, on Mapiclient side the same, and in best case it will reduce the amount of function calls done in the application to acquire individual column results.
Measuring applications and studying there behavior using e.g. Callgrind gives you a reasonable insight in the performance bottlenecks. Eg. in your recent callgrind file there was about a 10% cpu cycles loss due to virtualization it seemed.
I think it is impossible to measure the cycles lost in virtualisation, from within the VM. Or you must be able to see more context switches? Never the less, debugging, asserting and the VM just allows me to share my work and hopefully improve it without direct risk of breaking things. Not on the performance side :) (Though it is nice to see that even with all debugging options enabled the system still rocks in performance.) Stefan