Howdy, I have been working with one of our developers to port a Linux application to opensolaris. While benchmarking the app, we noticed that it ran 2x slower on a Nevada build 85 host than it did on Linux. The application utilizes libxml to transform XML documents, and I think we have narrowed down the discrepancy to the xmlReadMemory libxml function. We created a test program to call xmlReadMemory100k times, and measured the program execution time. Here are the results we got on the same hardware (Sun X2200):
CentOS Linux 5: % ./xml 100000 iter in 9.581637 sec Nevada build 85: % ./xml 100000 iter in 15.983286 sec When we ran the collect / er_print tools to generate execution profiles, we noticed that the top functions make heavy use of memory. Based on a number of documents I read on the Sun developer site, I tried different compiler flags, memory allocators (mtmalloc, libumem) and compilers (Sun studio 12). These items didn't help, and we are currently a bit mystified. The test program our developer wrote is available here: http://prefetch.net/xml.c And the following command line can be used to compile it; $ gcc -O3 -o xml `/usr/bin/xml2-config --libs --cflags` xml.c That said, does anyone have any thoughts on why the same code would be slower on Nevada? I really want to get our app running on opensolaris, but it's hard to justify the port when it when it's not running as well under Linux. :( Thanks for any insight, - Ryan _______________________________________________ perf-discuss mailing list perf-discuss@opensolaris.org