Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вообще-то не компилятор тестировался, а два метода решения одной задачи. Без разницы как гудит холодильник ууууу или ыыыыы, важно как он морозит.
Высосанная из пальца проблема а шуму...
Виртуальные функции никогда не инлайнятся, поэтому с включенной оптимизацией сравнивать с простыми примерами нет смысла, если switch сделан хорошо. Это раз.
Кто говорил что ООП быстрее? Удобнее, логичнее, а вот быстрее вряд ли. Это два.
Не нравится не пользуйся.
После того было еще два варианта тестирования, 2 - с непустыми функциями, 3 - с уникальными функциями, результаты аналогичные. Вариант 1 был еще проведен в C#, но результат был обратный.
Я видел эти варианты. И они тоже ложатся в схему инлайнинга и хорошо оптимизируются.
Вариант с C# показывает очередной ввод в заблуждение из-за непонимания работы оптимизатора кода. Код показан не был, да еще и дотнетовый компилятор имеет в несколько раз больше методов оптимизации, которые как орешки щелкают вырожденные случаи тестовых примеров. Я как раз привел пример простой случай конвертации виртуальной функции в обычную при простых случаях. У нас эта оптимизация (в простых случаях как этот тест) тоже будет включена и вы тоже увидите как "виртуальный" метод вдруг обгоняет прямой.
Высосанная из пальца проблема а шуму...
Виртуальные функции никогда не инлайнятся, поэтому с включенной оптимизацией сравнивать с простыми примерами нет смысла, если switch сделан хорошо. Это раз.
Кто говорил что ООП быстрее? Удобнее, логичнее, а вот быстрее вряд ли. Это два.
Не нравится не пользуйся.
Да это и не проблема вовсе. Просто эксперимент с результатами и вывод.
Нравится, не нравится. Использовать медленное вместо быстрого не логично.
Я видел эти варианты. И они тоже ложатся в схему инлайнинга и хорошо оптимизируются.
Вариант с C# показывает очередной ввод в заблуждение из-за непонимания работы оптимизатора кода. Код показан не был, да еще и дотнетовый компилятор имеет в несколько раз больше методов оптимизации, которые как орешки щелкают вырожденные случаи тестовых примеров. Я как раз привел пример простой случай конвертации виртуальной функции в обычную при простых случаях. У нас эта оптимизация (в простых случаях как этот тест) тоже будет включена и вы тоже увидите как "виртуальный" метод вдруг обгоняет прямой.
Кажется, какой бы результат у меня не получился, он будет неправильным и вводящим в заблуждение.
- За что?
- Индеец, сэр.
(xф Одинокий рейнджер)
Как бы не стралася, пока никак не получается получить, чтобы через switch работало медленее, чем виртуальный метод. Старался, но извините, не получилось.
Здесь в приложении первый тест на C#. Здесь были результаты
Доказательства будут с другой стороны. Или опять только слова.
По большому счету интересует только факты.
Хотя я и так знаю что ООП работает медленнее, но предоставляет вполне конкретные удобства
Доказательства будут с другой стороны.
Доказательства чего?
Зачем вам ООП, игрушки писать? )
В любом случае хорошо, что вопрос поднялся.
Мы постоянно работаем над улучшениями компилятора и его оптимизатора. Сейчас сконцентрируемся на оптимизации вызовов виртуальных методов (множество виртуальных методов можно превратить в прямые).