pthreads & dynamic memory in fbsd vs. the same in linux
Coleman Kane
zombyfork at gmail.com
Thu Feb 10 05:46:19 PST 2005
Could you post the code too, perchance?
On Thu, 10 Feb 2005 10:55:04 +0200, Andriy Tkachuk <ant at emict.com> wrote:
> Hi folks.
>
> I noticed the strange stick of pthreads (amount ~ 500)
> when allocating dynamic memory by malloc or new
> in my system:
>
> > uname -a
> FreeBSD ant.emict.com 5.3-STABLE FreeBSD 5.3-STABLE #0: Wed Feb 9 17:30:11 EET 2005 ant at ant:/lin/fbsd_obj/usr/src/sys/ANT i386
>
> It's interesting that the same program behaves differently
> when it is compiled in linux and run on my fbsd machine in
> linux_base-7.1_7 .
>
> > ldd test2-linux
> test2-linux:
> libpthread.so.0 => /lib/libpthread.so.0 (0x28065000)
> libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x2807c000)
> libm.so.6 => /lib/libm.so.6 (0x280bf000)
> libc.so.6 => /lib/libc.so.6 (0x280e1000)
> /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2804c000)
> > ldd a.out
> a.out:
> libpthread.so.1 => /usr/lib/libpthread.so.1 (0x28075000)
> libstdc++.so.4 => /usr/lib/libstdc++.so.4 (0x28099000)
> libm.so.3 => /lib/libm.so.3 (0x2816b000)
> libc.so.5 => /lib/libc.so.5 (0x28184000)
>
> Each thread allocates the amount of memory by 10 bytes in loop.
> The number of iterations is specified in cmdline arg. The program
> prints the time each thread is spent allocating memory in loop.
> Let's look on results.
>
> > ./a.out n 1000 # 1000 iterations of new operator. Every new allocates 10bytes.
> thread 0 created
> thread 1 created
> thread 2 created
> thread 3 created
> thread 4 created
> ...
> thread 497 created
> thread 498 created
> thread 499 created
> 0.001114
> 0.001022
> 0.001021
> 0.001011
> 0.001014
> 0.001010
> 0.001013
> 0.001050
> 0.001035
> 0.001011
> 0.001013
> 0.001010
> 0.001013
> 0.001010
> 0.001029
> 0.001075
> 0.001053
> 0.001011
> 0.001014
> 0.001011
> 0.001030
> 0.001010
> 0.001015
> 0.001042
> 0.001019
> 0.001011
> 0.001014
> 0.001012
> 0.001013
> 0.001010
> 0.001014
> 0.361604
> 3.225090
> 3.225458
> 3.225696
> 3.225925
> 3.226152
> 3.226380
> 3.226608
> 3.226833
> 3.227062
> 3.227290
> 3.227517
> 3.227744
> 3.227972
> 3.228202
> 3.228451
> 3.228681
> 3.228912
> 3.229140
> 3.229367
>
> The same, but in linux_base-7.1_7 :
>
> > ./test2-linux n 1000
> thread 0 created
> thread 1 created
> ...
> thread 498 created
> thread 499 created
> 0.000467
> 0.000403
> 0.000402
> ...
> 0.000391
> 0.000391
> 0.000395
> ...
> 0.000395
> 0.010564
> 0.000398
> 0.000394
>
> The program source is attached.
>
> In linux program is compiled by
> $ gcc -v
> Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
> gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)
>
> in fbsd:
> > gcc -v
> Using built-in specs.
> Configured with: FreeBSD/i386 system compiler
> Thread model: posix
> gcc version 3.4.2 [FreeBSD] 20040728
>
>
> _______________________________________________
> freebsd-hackers at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"
>
>
>
More information about the freebsd-hackers
mailing list