Вот несколько советов о производительности gcc:
сделать тесты с -Os, -O2 и -O3. Иногда -O2 будет быстрее, потому что он делает код короче. Поскольку вы сказали, что используете много памяти, попробуйте также использовать -Os и выполнить измерения.
Также проверьте на клиентском компьютере параметр -march = native (его можно использовать безопасно, если вы делаете исполняемый файл для компьютеров с аналогичными процессорами). Иногда это может оказать значительное влияние на производительность. Если вам нужно составить список параметров, которые gcc использует с native, вот как это сделать:
Создайте небольшую C-программу под названием test.c, затем
$ touch test.c
$ gcc -march=native -fverbose-asm -S test.c
$ cat test.s
кредитов для кода пользователей форумов Gentoo.
Он должен распечатать список всех оптимизаций, используемых gcc. Обратите внимание, что если вы используете i7, gcc 4.5 определит его как Atom, поэтому вам нужно будет вручную установить -march и -mtune.
Также прочитайте этот документ, он поможет вам (тем не менее, по моему опыту в Gentoo, -march = native работает лучше) http://gcc.gnu.org/onlinedocs/gcc/i386-and-x86_002d64-Options.html
Вы можете попробовать новые опции в поздних 4.4 и ранних версиях 4.5, такие как -flto и -fwhole-program. Это должно помочь с производительностью, но при экспериментировании с ними моя система была нестабильной. В любом случае, прочитайте этот документ тоже, он поможет вам понять некоторые параметры оптимизации GCC http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html