Ответ 1
Мой опыт заключается в компиляции моего проекта сжатия изображений С++ JPEG-LS. http://charls.codeplex.com
Для меня Visual С++ был значительно быстрее.
Я скомпилировал его в основном с g++ на linux. После большой настройки версия g++ все еще была на 10-15% медленнее на одном и том же оборудовании (тот же физический компьютер, с двойной загрузкой как linux). Это было после многих часов поиска вариантов оптимизации g++, которые действительно помогли. Просто компиляция с оптимизацией по умолчанию g++ была на 60% медленнее, чем Visual С++.
Мой проект, возможно, несколько типичен, потому что это не C, а С++, и требует, чтобы компилятор делал много вложений. В обоих компиляторах я применяю inlining, чтобы произойти.
Кроме того, мне было предложено объяснить, что x86 имеет очень мало регистров, а g++ не подходит для их распределения.
Update:
Для более тщательного сравнения компиляторов microsoft и gnu перейдите в этот тест компилятора C. В соответствии с тем, как я читаю эти цифры, разница между Microsoft и GCC для 32 бит на одном уровне друг с другом, хотя GCC тестируется с оптимизацией на основе профиля (PGO), а Microsoft - нет (в VS Express нет PGO).
Без PGO Microsoft работает быстрее на 32 бит. На 64 бит GCC работает быстрее. Intel все еще быстрее, чем на любой из этих платформ.