July 2007
Intermediate to advanced
332 pages
10h 4m
English
There is no requirement to link in the scalable allocator just because you used a container, as it will default to dynamically loading the library or to using malloc. Performance will likely be better if you make sure the scalable allocator (Chapter 6) is indeed dynamically found and loaded.
Avoid using mutual exclusion if you can. Try to use implicit synchronization inherent in the algorithms covered in Chapter 3 and Chapter 4. If you cannot rewrite an algorithm to avoid sharing critical sections, avoid locks and protect shared memory usage using atomic operations if you can. Refer to Chapter 7 for more information.
Use the debug versions and assert macros only for debugging, as they introduce nontrivial overhead.