Visual Studio 2008 ужасная производительность - PullRequest
1 голос
/ 14 мая 2010

Я перенес часть кода C ++, который работает из ядра, с Linux (Ubuntu) на Windows (Vista), и я понял, что он работает примерно в 50 раз медленнее на VS2008! Я удалил все из основных частей, и теперь у меня просто есть фрагмент кода, который не имеет ничего общего с жестким диском.

Я установил для параметров компилятора значение O2 в свойствах проекта, но все равно он работает примерно в 10 раз медленнее, чем g ++ в linux!

Кто-нибудь знает, почему это намного медленнее под VS?

Я действительно ценю любой намек!

Спасибо

Ответы [ 2 ]

2 голосов
/ 14 мая 2010

Много ли вы используете стандартной библиотеки C ++? Если это так, вы можете отключить функцию «проверенных итераторов», которая по умолчанию включена в Visual C ++ (даже в режиме выпуска). Поместите это перед включением любых стандартных заголовков:

#define _SECURE_SCL 0

Подробнее здесь .

1 голос
/ 14 мая 2010

Не нужно угадывать. Просто нажмите кнопку «пауза» и посмотрите на стек. Вероятность того, что вы пропустите проблему, составляет 1/50. Если вы не уверены, сделайте это несколько раз.

...