On 2014-02-10 21:38, Robert Williams wrote: > Your best first step is to profile the code. I suspect there’s a particular function call that’s responsible for most of the slow-down. For example, maybe your fopen() calls are triggering a network hit by the OS. Once you know the exact source of the slow performance, you can figure out what to do about it. Ok, I'm a sucker. The word "fopen" put me in the right direction: it had to be a difference related to the file system: Windows is case-insensitive, and my program takes care of this comparing files and paths in case-insensitive way. But here it was the bug: wrong hash calculation of case-insensitive Unicode strings bringing to the same exact value for each string, in turn bringing to hash table collisions, in turn forcing a repeated case-insensitive comparison between file names. The execution time dropped from 111 s to a fantastic, only 3.31 s!!! Now the comparison Linux/Windows is reversed: 1) Slackware Linux 12.1, Pentium 4, 32 bits, 1,6 GHz, PHP-CLI 5.3.6-dev: 26 s * 1.6 GHz = 42 Gcycles 2) Windows Vista Business, Pentium E5300, 32 bits 2.6 GHz, PHP-CLI 5.3.10-nts: 7.54 s * 2.6 GHz = 19.6 Gcycles 3) Windows Vista Business, Pentium E5300, 32 bits 2.6 GHz, (same PC of point 2 above) PHP-CLI 5.5.9-nts: 3.31 s * 2.6 GHz = 8.6 Gcycles Then the question now is: why so slow on Linux? I already said I'm a sucker? Thank you very much to everybody and sorry for the disturb. -- Regards, ___ /_|_\ Umberto Salsi \/_\/ www.icosaedro.it -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php