Скорее в том, как она используется. Я думаю, что если на С++ не использовать пулинг ресурсов, а аллоцировать все подряд, то греться оно будет не меньше
Чем меньше памяти, тем чаще надо запускать сборку мусора. Для нормальной работы необходимо что-то типа втрое больше памяти, чем если ручками эту память чистить. Тогда языки со сборкой мусора догоняют плюсы по перформансу. Даже если в плюсах аллоцировать всё подряд, но чистить после себя, то OOM не достигнет и приложение будет работать без больших пауз.