С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/19: Рейтинг темы: голосов - 19, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 17.06.2012
Сообщений: 17

Зависит ли быстродействие программы от среды (VS2017 и VS2019) или их настроек?

30.01.2021, 13:25. Показов 3808. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть коректный многопоточный код на С++ и два компа:
1. слабый, Windows 10, VS2017
2. быстрый, Windows 10, VS2019

Компилирую код на слабом(в VS2017) и запускаю - время выполнения 16 минут,
компилирую код на быстром(в VS2019) и запускаю - время выполнения 14 минут,

а теперь интересное: если скомпилированый exe-файл со слабого компа перекинуть на быстрый, то программа выполняется за 9 минут!

Какие могут быть причины такого эффекта?
Как зависит быстродействие программы от среды (VS2017 и VS2019) или их настроек?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.01.2021, 13:25
Ответы с готовыми решениями:

Конструктор WinForms не открывает в VS2017 Форму созданную в VS2019
Пытаюсь открыть конструктор WinForms - ошибка. Сегодня появилась. Пробовал переустановить, на Visual Studio 2019 (сейчас у меня 2017)...

Какие принципиальные преимущества использования VS2019 по сравнению с VS2017?
Какие принципиальные преимущества использования VS2019 по сравнению с VS2017? Можно и про не принципиальные, но весьма приятные.

От чего зависит быстродействие Матлаб
Всем привет! Обсудим немного железо и Матлаб? Располагаю 2мя машинами и решил выяснить для себя, где Матлаб работает быстрее. Результат...

15
495 / 209 / 70
Регистрация: 27.05.2016
Сообщений: 557
30.01.2021, 13:50
Цитата Сообщение от Serhiy_UA Посмотреть сообщение
Как зависит быстродействие программы от среды
От машины может зависеть время компиляции/сборки программы. IDE (VS2017/2019) мало как влияет на скорость компиляции. И, само собой, уже собранная программа будет выполняться/работать быстрее на быстром ПК. Еще зависит от многопоточности программы и правильно ли она будет работать с любым количеством потоков - чем больше потоков - тем быстрее.

Добавлено через 4 минуты
Цитата Сообщение от notAll Посмотреть сообщение
IDE (VS2017/2019) мало как влияет на скорость компиляции.
Тут еще зависит как собирать - в релиз/дебаг режиме, какие флаги компиляции и оптимизации выставлены.
1
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
30.01.2021, 14:05
Цитата Сообщение от Serhiy_UA Посмотреть сообщение
а теперь интересное: если скомпилированый exe-файл со слабого компа перекинуть на быстрый, то программа выполняется за 9 минут!
Код-то покажи
0
0 / 0 / 0
Регистрация: 17.06.2012
Сообщений: 17
30.01.2021, 15:21  [ТС]
notAll, за подсказку релиз/дебаг спасибо!
А где посмотреть флаги компиляции и оптимизации, которые связаны именно с этим?
Может, где-то есть походящая справка? (Я уже попробовал погуглить и что-то не очень...)

oleg-m1973, к сожалению, код показывать нельзя (секрет фирмы), хотя я его сам писал. Если коротко, то это что-то вроде перебора вариантов для разных комбинаций и нахождение общей суммы. Комбинаций очень много. Потоков для теста выставил 4, хотя у второго компа 12 ядер, т.е., для второго компа ещё есть куда разгоняться.
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
30.01.2021, 15:27
Цитата Сообщение от Serhiy_UA Посмотреть сообщение
oleg-m1973, к сожалению, код показывать нельзя (секрет фирмы), хотя я его сам писал. Если коротко, то это что-то вроде перебора вариантов для разных комбинаций и нахождение общей суммы. Комбинаций очень много. Потоков для теста выставил 4, хотя у второго компа 12 ядер, т.е., для второго компа ещё есть куда разгоняться.
Цитата Сообщение от Serhiy_UA Посмотреть сообщение
notAll, за подсказку релиз/дебаг спасибо!
А где посмотреть флаги компиляции и оптимизации, которые связаны именно с этим?
А для твоей фирмы, случайно, не является секретом, что её разработчик не знает что такое Debug и Release и чем они отличаются?
Там ещё и в потоках работает? Не завидую твоей фирме.
0
0 / 0 / 0
Регистрация: 17.06.2012
Сообщений: 17
30.01.2021, 16:03  [ТС]
oleg-m1973, завидовать нехорошо.
Лучше бы что-то по делу написал, если таковые знания есть.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
30.01.2021, 16:13
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Потоков для теста выставил 4, хотя у второго компа 12 ядер, т.е., для второго компа ещё есть куда разгоняться.
Куда разгоняться если число потоков ограничено 4?
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
30.01.2021, 16:25
Цитата Сообщение от Serhiy_UA Посмотреть сообщение
oleg-m1973, завидовать нехорошо.
Я вроде и сказал, что не завидую
Цитата Сообщение от Serhiy_UA Посмотреть сообщение
Лучше бы что-то по делу написал, если таковые знания есть.
Ок, по делу:
Цитата Сообщение от Serhiy_UA Посмотреть сообщение
Какие могут быть причины такого эффекта?
Тут две самых самых распространённых причины - первая Debug/Release перепутал, вторая - говнокод, который работает нестабильно. В данном случае обе равновероятны.
0
 Аватар для eva2326
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,518
30.01.2021, 16:52
Цитата Сообщение от Serhiy_UA Посмотреть сообщение
Какие могут быть причины такого эффекта?
Обычно - в прокладке между стулом и монитором.

Цитата Сообщение от Serhiy_UA Посмотреть сообщение
Как зависит быстродействие программы от среды (VS2017 и VS2019) или их настроек?
Странный вопрос. Напрямую зависит: как настроите, так и будет.
Например, вы можете собрать медленный, но надежный дебаг.
Или шустрый, но менее надежный релиз.

Цитата Сообщение от Serhiy_UA Посмотреть сообщение
код показывать нельзя (секрет фирмы)
Вы ошиблись форумом. Вам нужен форум с гадалками, а тут - программисты.


Интересно, а что это за фирма такая, у которой сотрудники задают вопросы уровня новичка?
0
0 / 0 / 0
Регистрация: 17.06.2012
Сообщений: 17
31.01.2021, 11:51  [ТС]
Нет, oleg-m1973, программы компилировались в одном режиме, почему и вопрос возник.

eva2326, во всех случаях использовался один и тот же код, поэтому логично предположить, что причина не в нём.

И вот ещё: вы почему-то вообразили, что я програмистом работаю, но это не так.
А, судя по вашим ответам, вы такие же специалисты, как и я.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
31.01.2021, 12:01
Цитата Сообщение от Serhiy_UA Посмотреть сообщение
А, судя по вашим ответам, вы такие же специалисты, как и я.
Не несите чушь. Лучше код предоставьте проблемный. Без кода смысла в этой теме вообще нет.
0
 Аватар для eva2326
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,518
31.01.2021, 14:05
Цитата Сообщение от Serhiy_UA Посмотреть сообщение
во всех случаях использовался один и тот же код, поэтому логично предположить, что причина не в нём.
Логично, для непрограммиста :Ь

И не логично для программиста.
Потому что программист знает, что в зависимости от конфигурации сборки, код может различаться как небо и земля.
Взять тот же дебаг и релиз: код один. Но в зависимости от конфигурации, компилируется он по разному.

И даже в рамках одной и той же конфигурации могут быть существенные различия.
Реальные проекты часто идут на всевозможные ухищрения, связанные со спецификой конкретного компилятора.

Вот, пожалуй, яркий пример одного из таких случаев
Это - фрагмент из реального коммерческого кода.
В Visual Studio 2015 был обнаружен баг.
Для неё используется обходной вариант.
Для всех остальных компиляторов - общий вариант.

C++
1
2
3
4
5
6
7
8
#if defined(_MSC_VER) && _MSC_VER >= 1900 && _MSC_VER < 1910
    // msvc2015 has bug. see below  [1]
    #pragma message("view_callable: select 'compatibility mode with msvc2015'")
    #include <tools/types/view/view_callable-msvc2015.hpp>
#else
    // #pragma message("view_callable: select 'actual version'")
    #include <tools/types/view/view_callable-common.hpp>
#endif
В зависимости от используемого компилятора и его настроек, могут быть использованы разные библиотеки, разные запчасти, разное всё))

Но!
Вся ирония в том, что несмотря ни на какие различия, одна и та же сборка на разных компиляторах не должна иметь разительных отличий по эффективности.

Скорее всего вы где-то напортачили.



Цитата Сообщение от Serhiy_UA Посмотреть сообщение
программы компилировались в одном режиме, почему и вопрос возник.
Это - ложь ))
Судя по вашем первичным репликам:
Цитата Сообщение от Serhiy_UA Посмотреть сообщение
за подсказку релиз/дебаг спасибо!
А где посмотреть флаги компиляции и оптимизации, которые связаны именно с этим?
Вы вообще были не в курсе, что оказывается существют ещё какие то "режимы".
А значит, ваш вопрос никак не мог возникнуть на почве "одинаковости режимов".
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
31.01.2021, 14:11
Цитата Сообщение от Serhiy_UA Посмотреть сообщение
Нет, oleg-m1973, программы компилировались в одном режиме, почему и вопрос возник.
Значит остаётся вторая причина
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
говнокод, который работает нестабильно.
Либо ещё может быть, что на одном компе скомпилировано для платформы x86, а на другом - x64
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,208
01.02.2021, 03:52
Лучший ответ Сообщение было отмечено Serhiy_UA как решение

Решение

Цитата Сообщение от Serhiy_UA Посмотреть сообщение
Как зависит быстродействие программы от среды (VS2017 и VS2019) или их настроек?
По вашему вопросу не ясно, могло ли это сыграть роль, но одна и та же программа, запущенная из-под среды может работать медленнее, чем запущенная из консоли, даже если речь идет о Release конфигурации.

https://preshing.com/20110717/... -debugger/

Чтобы устранить это различие, нужно попросить среду не использовать debug heap



Цитата Сообщение от Serhiy_UA Посмотреть сообщение
за подсказку релиз/дебаг спасибо!
Рука-лицо... Вопрос оказался несерьезным.
1
0 / 0 / 0
Регистрация: 17.06.2012
Сообщений: 17
01.02.2021, 21:19  [ТС]
Цитата Сообщение от TheCalligrapher
программа, запущенная из-под среды может работать медленнее, чем запущенная из консоли
Похоже, это и есть правильный ответ. TheCalligrapher, +1.
Я уже сам об этом подумал, но подтверждение все равно очень ценно.

Всем остальным спасибо, и меньше понтов, ребята и девчата.
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
01.02.2021, 21:24
Цитата Сообщение от Serhiy_UA Посмотреть сообщение
Всем остальным спасибо, и меньше понтов, ребята и девчата.
Понты вроде в основном у тебя были, мальчик.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.02.2021, 21:24
Помогаю со студенческими работами здесь

От чего зависит размер программы? От компилятора или компоновщика?
Просто размер программы - единственное, что меня не устраивает в MinGW. Подумываю написать свой линковщик, если проблема именно в нём.

Изменение настроек программы через файл настроек
Суть: есть необходимость менять настройки приложения на лету. При этом в коде хочется пользоваться Settings. Пока сделано несколько...

Отладка программы с асинхронными методами, настройка параметров отладчика VS2019
Впервые стал отлаживать программу с асинхронными методами и сразу столкнулся с разнообразными &quot;чудесами&quot;. С одними чудесами...

VS2017 глючит или я
Удалено...

Быстродействие программы
Нужно написать компонент на основе BitBtn, при клике на кнопку должен играть нота, для этого использую MMSystem, и нужно подключить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru