Если вам нужна легковесная программа, вам нужно беспокоиться не о компиляторе, а о коде, который вы пишете, и библиотеках, которые вы используете. Большинство компиляторов выдают схожие результаты из одного и того же исходного кода.
Например, при использовании C ++ с MFC, базовым приложением Windows, которое запускалось с размера около 900 КБ и быстро росло. Связывание с динамическими библиотеками MFC снизило бы до нескольких сотен кБ. Но благодаря полному удалению MFC - непосредственно с использованием API-интерфейсов Win32 - и использованию минимальной среды выполнения C было достаточно легко реализовать то же самое в .exe размером около 25 КБ или менее (IIRC - с тех пор, как я это сделал, прошло много времени).
Так что отбросьте библиотеки и вернитесь к должному низкому уровню C (или даже C ++, если вы не используете слишком много «умных» функций), и вы можете легко писать очень компактные приложения.
редактировать
Я только что понял, что меня озадачило название вопроса, когда он говорил о легких приложениях, в отличие от концентрации на производительности , которая, как представляется, реальная суть вопроса. Если вам нужна производительность, то нет особой необходимости использовать C или переходить в болезненную среду разработки - просто пишите хороший, высокопроизводительный код. По сути, речь идет об использовании правильных конструкций и алгоритмов, а затем о профилировании и оптимизации результирующего кода для устранения узких мест и неэффективности. Обратите внимание, что в наши дни вы можете добиться значительных успехов, перейдя на многопоточный подход, а не просто сконцентрироваться на оптимизации исходного кода - убедитесь, что вы хорошо используете оборудование.