Rene Brun
authored
Extract from a mail from Michal: "I'm a summer student working for the openlab project (supervisor: Sverre Jarp). I've been optimizing ROOT on an Itanium platform for a few weeks and I've found a bug, which, if it's accepted and corrected, will influence all the ROOT benchmarks that have been done by now. What I've found is that all zip/*.c files use the variable 'level' which is declared in ZIP.h as a static (local) variable. The result is that calling R__zip(1, ...) (as in the 'stress' program) changes the 'level' variable only in the Bits.c file, but its value remains default ( == 6) in the others. The resulting compressed file is still correct, but the drawback is quite huge slow-down of the programs like 'stress' which use data compression intensively. Some facts: by putting the files: Tree.c, Bits.c and Deflate.c in a single C file (with some small changes), what makes the 'level' variable appear in only one copy, I've increased the result of the 'stress' benchmarking program from 584 RM to 701 RM -- 20% improvement. At the same time, the size of all compressed data increased by about 1.7%. (Itanium 1000 MHz machine, Intel compiler v8.0 with -O3 and profile-guided optimization). The bug is really easy to fix, but it will require all the benchmarks done in the past to be repeated or rescaled..." git-svn-id: http://root.cern.ch/svn/root/trunk@7132 27541ba8-7e3a-0410-8455-c3a389f83636