c++ with pthread?
Niall Douglas
s_sourceforge at nedprod.com
Tue Nov 8 01:47:30 PST 2005
On 8 Nov 2005 at 8:06, Norbert Koch wrote:
> > Thanks for your reply!
> >
> > Performance wise, would you think commoncpp is better with threads than
> > directly pthread?
> >
> > Nicolas.
>
> Commoncpp tries to be platform-independent. So, no.
> What performance are you talking about? Thread creation
> may be slower, but context changes are always handled by
> pthread. So there would be no difference.
> Mutexes and conditionals will be slower too.
> I never ran any benchmarks.
The implementation of mutexes is the single biggest determinant of
heavily multithreaded code. FreeBSD has a very simple memory
allocator which always serialises to one thread, resulting in VERY
poor performance when you have three or more threads running at once.
TnFOX has its own memory allocator (ptmalloc2) as well as its own
mutex implementation. I haven't found any system (win32, win64, linux
or freebsd) whose native facilities come anywhere close to TnFOX's
threading performance.
In other words, choosing a good optimised threading library makes ALL
the difference to performance.
I once again strongly suggest that the FreeBSD memory allocator in
libc is replaced with ptmalloc2
(http://www.nedprod.com/programs/Win32/ptmalloc2/ - its MIT licence).
Doing this gives a several fold speed increase even in single
threaded C++ apps due to the fastbins.
Cheers,
Niall
More information about the freebsd-threads
mailing list