https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90634
--- Comment #4 from baltic <1000hz.radiowave at gmail dot com> --- besides the 269 bytes you have mentioned, is still x10 overhead for a 20 chars string. and massively adds up, if you store a lot objects. for example, when i go around home folder on my machine and save all the found paths to vector, it takes 2.7GB, while should take ~150MB!! quite an overhead on a simple task, for a language which strives for efficiency. check out clang, for example: https://wandbox.org/permlink/u9dEfPh1Zc5pmJ34 it's smart enough to allocate such short strings inplace: about to quit. total allocated 0 bytes