I wonder how efficient is the C++ heap generally?

Say I would like to create in the order of 1 million quite small objects quite frequently. Is the ordinary C++ heap fit to handle this, or will it be like wading in a tar pit?

I know I should measure and see if it's a performance bottleneck in my specific program, but I'm looking for a more general assessment. If you're programming in the OO style is the C++ heap likely to become a bottleneck and you should seek aid in a specialized object allocator or even a garbage collector?