Antonis,
we have started working in this small project as I informed you. We have set up server/client problem and we have run many test queries on the standard Xmark database.
…fine.
With options -z -r100 and I get: [...] Printing: 140.66 ms (avg) [...] Do you think this output is normal? I do not understand why printing time is not 0 since I use '-z'. Should we include printing in timing our benchmarks?
This is an expected behavior and due to the "pipelining" architecture, and lazy evaluation, of BaseX. Your performance results indicate that the results will be evaluated as soon as it is about to be printed, which means that evaluating and printing is closely coupled and cannot be clearly separated.
I would indeed suggest to use the total times for benchmarking, and to minimize the time for printing the result. You could e.g. move all output to /dev/null, or to a temporary file on disk, which is ok with the performance of today's hard disk. To play fair with the competition, you could omit the -z flag for BaseX.
In addition what exactly does OPTIMIZE? If we just create a DB based on an .xml file and we dont actually UPDATE anything but we only perform queries, then optimize does not change anything, right? I mean when created a DB is already 'optimized'?
Exactly; in short, optimize is needed after updates.
I tried to find all this answers in documentation but I couldn't.
Time to put more work into that; thanks. Christian