Hi. We've observed that on Linux some of our applications are running considerably faster on the same hardware - the problem is realloc() which is generally much faster on Linux than on Solaris. We mitigate problem a little bit by eliminating most of realloc()'s but still we would like to have better implementation on Solaris.
Using dtrace we were able to determine that when it comes to realloc() it's fastest with default memory allocator from libc, them umem then mtmalloc. libc's realloc() is fastest mostly due to fact that not all realloc()'s require copying data. Here's umem's realloc() http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libumem/common/malloc.c#389 And here's libc implementation http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libc/port/gen/malloc.c#302 Linux glibc implementation uses mremap() and this is what gives huge boost. For some details on mremap() see http://www.die.net/doc/linux/man/man2/mremap.2.html http://www.core-dump.com.hr/?q=node/129 I believe implementing mremap() on Solaris would really help. The problem is really visible for example in PHP applications when serving web pages - lots of realloc()'s. This message posted from opensolaris.org _______________________________________________ perf-discuss mailing list perf-discuss@opensolaris.org