Производительность Visual Studio C - PullRequest
2 голосов
/ 30 марта 2011

У меня есть проект C (скомпилированный как lib) в Visual Studio 2010. Функции из этой библиотеки затем вызываются из C ++ (нативный, без CLR). Мой вопрос: производит ли компилятор Visual Studio для простого C такой же быстрый двоичный код, как и для C ++? Есть ли какие-либо потери производительности для простого C? Я надеюсь, что нет, но я хотел бы быть уверен.

Другими словами, VS2010 оптимизирует C ++ лучше, чем C?

Ответы [ 2 ]

5 голосов
/ 30 марта 2011

Не должно быть снижения производительности при вызове функций C из C ++. Единственный способ узнать наверняка - это профилировать ваш код или смотреть на сгенерированные инструкции.

2 голосов
/ 30 марта 2011

Visual C ++ использует один и тот же сервер для генерации кода как для C, так и для C ++, поэтому он обычно выдает идентичный вывод для эквивалентного ввода.

Есть некоторые вещи, которые вы можете сделать в C ++ (например, используя шаблоны), для которых C не предоставляет (разумного / практического) эквивалента. В некоторых из этих случаев C ++ может (и, как правило, позволяет) писать код, который более эффективен, чем типичный эквивалент в C. Например, std::sort часто быстрее, чем qsort (и не просто чуть-чуть быстрее). - коэффициент 2 или 3 довольно распространен).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...