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? Best, George
attached mail follows:
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); }Received on Mon Mar 03 2008 - 19:24:05 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:28 UTC