[added jasone_at_ to the cc list] On Mon, Mar 03, 2008 at 03:23:33PM -0500, gnn_at_freebsd.org wrote: > Hi, > > One of the folks I'm working with found this. The following code, > which yes, is just an example, is 1/2 as fast on 7.0-RELEASE as on > 6.3. Where should I look to find out why? All of malloc lives in src/libc/stdlib/malloc.c. I know Jason has made some changes in current so it might be worthwhile grabbing a copy from there and seeing if this case works better there. -- Brooks > > Best, > George > > > culprit continues to be arena_run_malloc, which takes several times longer > on fbsd7 than the total of all calls to *alloc* on fbsd6. > > Output of uname -a: > FreeBSD testlab5 7.0-STABLE FreeBSD 7.0-STABLE #1: Thu Feb 28 10:06:47 EST > 2008 root_at_builder:/usr/obj/usr/sources/FreeBSD.7/src/sys/GENERIC amd64 > > Program source: > // simple test program that shows fbsd7 memory operations 2x slower than > fbsd6 > // compile with: > // g++ -o memory.o -c -O3 -Wall memory.cc > // g++ -o memory memory.o -O3 -L/usr/local/lib > > > class MemUser { > public: > void nTimesInOrder(int n) { for (int i=0; i<n; ++i) { alloc(); > freeInOrder(); } } > void alloc(); > void freeInOrder(); > void freeRandom(); > > private: > char* p; > char* ptrs[16384]; > int psize; > }; > > void MemUser::alloc() > { > int n = 0; > // for now, allocating 1000 times at each size. Sizes are 2, 20, 200, > 2000, 20k, 200k bytes > for (int size=2; size <= 2e5; size *= 10) { > for (int i=0; i<1000; ++i) { > p = new char [size]; > ptrs[n++] = p; > } > } > psize = n; > } > > void MemUser::freeInOrder() > { > for (int i=0; i < psize; ++i) { > delete [] ptrs[i]; > } > } > > > int main(int argc, char* argv[]) > { > MemUser mu; > mu.nTimesInOrder(5000); > } > > > _______________________________________________ > freebsd-current_at_freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:28 UTC