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

Reply via email to