jemalloc on uniprocessor

Channa channa.kad at gmail.com
Tue Jan 20 00:54:46 PST 2009


Hi All,

I am testing the performance of jemalloc on uniprocessor( MIPS arch).
I could see if the number of threads are more the time taken for execution
for some threads takes extreme values.
I have the results as below:

./malloc-test 16 1000 30

Thread 2136997200 adjusted timing for malloc is: 1245 micro seconds for 1000
requests of 16 bytes.
Thread 2134900048 adjusted timing for malloc is: 1119 micro seconds for 1000
requests of 16 bytes.
Thread 2132802896 adjusted timing for malloc is: 1134 micro seconds for 1000
requests of 16 bytes.
Thread 2130705744 adjusted timing for malloc is: 1119 micro seconds for 1000
requests of 16 bytes.
Thread 2128608592 adjusted timing for malloc is: 3704 micro seconds for 1000
requests of 16 bytes.
Thread 2126511440 adjusted timing for malloc is: 6742 micro seconds for 1000
requests of 16 bytes.
Thread 2122317136 adjusted timing for malloc is: 10601 micro seconds for
1000 requests of 16 bytes.
Thread 2124414288 adjusted timing for malloc is: 18722 micro seconds for
1000 requests of 16 bytes. < == HERE
Thread 2118122832 adjusted timing for malloc is: 22490 micro seconds for
1000 requests of 16 bytes. < == HERE
Thread 2120219984 adjusted timing for malloc is: 26584 micro seconds for
1000 requests of 16 bytes. < == HERE
Thread 2116025680 adjusted timing for malloc is: 30462 micro seconds for
1000 requests of 16 bytes.
Thread 2109734224 adjusted timing for malloc is: 34568 micro seconds for
1000 requests of 16 bytes.
Thread 2111831376 adjusted timing for malloc is: 38361 micro seconds for
1000 requests of 16 bytes.
Thread 2113928528 adjusted timing for malloc is: 42392 micro seconds for
1000 requests of 16 bytes.
Thread 2105539920 adjusted timing for malloc is: 46194 micro seconds for
1000 requests of 16 bytes.
Thread 2107637072 adjusted timing for malloc is: 50230 micro seconds for
1000 requests of 16 bytes.
Thread 2103442768 adjusted timing for malloc is: 54132 micro seconds for
1000 requests of 16 bytes.
Thread 2101345616 adjusted timing for malloc is: 58065 micro seconds for
1000 requests of 16 bytes.
Thread 2099248464 adjusted timing for malloc is: 1133 micro seconds for 1000
requests of 16 bytes.
Thread 2097151312 adjusted timing for malloc is: 1168 micro seconds for 1000
requests of 16 bytes.
Thread 2095054160 adjusted timing for malloc is: 1100 micro seconds for 1000
requests of 16 bytes.
Thread 2092957008 adjusted timing for malloc is: 1176 micro seconds for 1000
requests of 16 bytes.
Thread 2090859856 adjusted timing for malloc is: 1134 micro seconds for 1000
requests of 16 bytes.
Thread 2088762704 adjusted timing for malloc is: 3194 micro seconds for 1000
requests of 16 bytes.
Thread 2086665552 adjusted timing for malloc is: 6710 micro seconds for 1000
requests of 16 bytes.
Thread 2084568400 adjusted timing for malloc is: 10770 micro seconds for
1000 requests of 16 bytes.
Thread 2080374096 adjusted timing for malloc is: 14513 micro seconds for
1000 requests of 16 bytes.
Thread 2082471248 adjusted timing for malloc is: 18580 micro seconds for
1000 requests of 16 bytes.
Thread 2078276944 adjusted timing for malloc is: 22601 micro seconds for
1000 requests of 16 bytes.
Thread 2076179792 adjusted timing for malloc is: 26405 micro seconds for
1000 requests of 16 bytes.


As shown in the above results mentioned "HERE" the threads take more time.
I have allocated 16 bytes for 1000 iteration for 30 threads.

Could anyone helpme , why the above results are seen?

Is is because of lock contention on uniprocessor since only one arena is
used?

Awaiting for your reply.

Thanks & Regards,
Channa


More information about the freebsd-current mailing list