Re[12]: 32 bit
От: Sharowarsheg  
Дата: 15.03.23 09:55
Оценка: +1
Здравствуйте, rudzuk, Вы писали:

R>Я попробовал этот тест собрать паскалем с llvm, так он вообще весь код выкинул за ненадобностью


Статья "о ценности синтетических бенчмарков"
Re[13]: 32 bit
От: rudzuk  
Дата: 15.03.23 14:43
Оценка:
Здравствуйте, Sharowarsheg, Вы писали:

S> R>Я попробовал этот тест собрать паскалем с llvm, так он вообще весь код выкинул за ненадобностью


S> Статья "о ценности синтетических бенчмарков"


avalon/3.0.2
Re: 32 bit
От: Teolog  
Дата: 15.03.23 16:49
Оценка:
Здравствуйте, eustin, Вы писали:

E>Можно ли в 2023 перейти целиком на 64 бита (b2c)? Сейчас для некоторых продуктов тащится 32 Битный exe на всякий случай.


Да, скорее нужно.
SSE2 по умолчанию на всех процессорах
Больше регистров богу регистров
Отсутсвие x86 системной прослойки — влияет на скорость перого запуска после перезагрузки и потребление физической памяти, если x86 софтина единственная.
Можно выделить МНОГО памяти непрерывным куском без извращений с маппингом.
Re[15]: 32 bit
От: Sharov Россия  
Дата: 17.03.23 13:45
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:


Ф>>Есть серьёзное подозрение, что под дебаггером.

ЕМ>Откуда? Отладчик, если он не безнадежно тупой, никак не взаимодействует с отлаживаемым процессом, пока тот не выполнит действие, вызывающее исключение — отладочный вывод, попадание на стоп-точку, ошибка и т.п. Если тестовый код не сыпет отладочными сообщениями сотни раз в секунду, производительность отличаться не будет.

Для отладочный версии компилятор может генерировать не самый оптимальный код в целях улучшения диагностики. По уму, надо релизные версии сравнивать.
Кодом людям нужно помогать!
Re[16]: 32 bit
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.03.23 13:47
Оценка:
Здравствуйте, Sharov, Вы писали:

Ф>>>Есть серьёзное подозрение, что под дебаггером.


S>Для отладочный версии компилятор может генерировать не самый оптимальный код


Запуск под отладчиком не имеет никакого отношения к генерации кода.
Re[17]: 32 bit
От: Sharov Россия  
Дата: 17.03.23 14:28
Оценка: -2 :))
Здравствуйте, Евгений Музыченко, Вы писали:

S>>Для отладочный версии компилятор может генерировать не самый оптимальный код

ЕМ>Запуск под отладчиком не имеет никакого отношения к генерации кода.

Под отладчиком, если без лишний действий, будет запускаться отладочная версия, т.е. не
самая оптимальная.
Кодом людям нужно помогать!
Re[18]: 32 bit
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.03.23 15:37
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Под отладчиком, если без лишний действий, будет запускаться отладочная версия


"Лишних" — это каких?
Re[17]: 32 bit
От: Sharowarsheg  
Дата: 17.03.23 15:52
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Запуск под отладчиком не имеет никакого отношения к генерации кода.


Не то, чтобы я проверял, но, скажем, в MSVS 2022 есть галка в разделе Options -> Debugging, [ ] Suppress JIT optimization on module load (Managed only). Я не знаю, что она делает, но звучит подозрительно.
Отредактировано 17.03.2023 15:54 Sharowarsheg . Предыдущая версия .
Re[18]: 32 bit
От: Философ Ад http://vk.com/id10256428
Дата: 17.03.23 16:30
Оценка:
Здравствуйте, Sharowarsheg, Вы писали:

S>...[ ] Suppress JIT optimization on module load (Managed only). Я не знаю, что она делает, но звучит подозрительно.


Делает именно то, что написано. А ещё есть переменная среды (с разбегу не нашёл, какая именно), которая позволяет запретить загружать нативные образы из GAC. Тоже помогает при дебаге, особенно таких вещей, как WPF.
Всё сказанное выше — личное мнение, если не указано обратное.
Re[18]: 32 bit
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.03.23 17:10
Оценка:
Здравствуйте, Sharowarsheg, Вы писали:

S>скажем, в MSVS 2022 есть галка в разделе Options -> Debugging, [ ] Suppress JIT optimization on module load (Managed only).


Оно и в VS 2005 есть.

S>Я не знаю, что она делает, но звучит подозрительно.


Оно тоже не имеет отношения к "запуску под отладчиком". С тем же успехом тому JIT'у можно как-то иначе передать инструкцию использовать этот режим.
Re[19]: 32 bit
От: Sharowarsheg  
Дата: 17.03.23 17:54
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Оно тоже не имеет отношения к "запуску под отладчиком". С тем же успехом тому JIT'у можно как-то иначе передать инструкцию использовать этот режим.


Насколько я понял описание вот тут —

https://learn.microsoft.com/en-us/visualstudio/debugger/jit-optimization-and-debugging?view=vs-2022

эта штука выключает (какую-то) оптимизацию при запуске под отладчиком, а без отладчика — не выключает.

Мне представляется, что это имеет отношение к запуску под отладчиком.
Re[20]: 32 bit
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.03.23 18:18
Оценка:
Здравствуйте, Sharowarsheg, Вы писали:

S>эта штука выключает (какую-то) оптимизацию при запуске под отладчиком, а без отладчика — не выключает.

S>Мне представляется, что это имеет отношение к запуску под отладчиком.

Когда процесс запускается из студии, он всегда будет "под отладчиком" (студийным).

А еще есть IsDebuggerPresent.

Ну и уж явно нет никакого смысла кодом, генерируемым хоть каким JIT, измерять время работы команды инкремента, верно?
Re: 32 bit
От: T4r4sB Россия  
Дата: 17.03.23 18:31
Оценка: +1
Здравствуйте, eustin, Вы писали:

E>Можно ли в 2023 перейти целиком на 64 бита (b2c)? Сейчас для некоторых продуктов тащится 32 Битный exe на всякий случай.


Да, но зачем? 32 бита жрут меньше памяти, и более портируемые.
64 бита нужны только если 4 гигов мало.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[21]: 32 bit
От: Sharowarsheg  
Дата: 17.03.23 19:38
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Когда процесс запускается из студии, он всегда будет "под отладчиком" (студийным).


В студии есть меню Debug -> Start without debugging.
Будет без отладчика. По крайней мере, без managed отладчика.

ЕМ>Ну и уж явно нет никакого смысла кодом, генерируемым хоть каким JIT, измерять время работы команды инкремента, верно?


Вообще особо нет смысла измерять время работы инкремента, но в целом, почему нет?
Re[17]: 32 bit
От: Sharov Россия  
Дата: 17.03.23 21:21
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

S>>Для отладочный версии компилятор может генерировать не самый оптимальный код

ЕМ>Запуск под отладчиком не имеет никакого отношения к генерации кода.

Сборки в dotnet имеют два осн. типа -- debug и release. Для первого типа компилятор не делает слишком много оптимизаций,
чтобы облегчить жизнь отладчику -- не инлайнит ф-ии, переменные, не удаляет недостижимый код и т.п.
Кодом людям нужно помогать!
Re[19]: 32 bit
От: Sharov Россия  
Дата: 17.03.23 21:22
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

S>>Под отладчиком, если без лишний действий, будет запускаться отладочная версия

ЕМ>"Лишних" — это каких?

Как минимум перелючение типа сборки из debug в release.
Кодом людям нужно помогать!
Re[18]: 32 bit
От: pilgrim_ Россия  
Дата: 17.03.23 21:56
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Сборки в dotnet имеют два осн. типа -- debug и release. Для первого типа компилятор не делает слишком много оптимизаций,

S>чтобы облегчить жизнь отладчику -- не инлайнит ф-ии, переменные, не удаляет недостижимый код и т.п.

Вероятно речь про jit-компилятор.

Но обсуждение началось с паскаля, компилятор которого генерит нативный код.
Re[18]: 32 bit
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.03.23 22:08
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Сборки в dotnet имеют два осн. типа -- debug и release.


Спасибо, кэп. Только при чем здесь dotnet? Они в MS VS такие с незапамятных времен, когда dotnet еще в проекте не было.

S>Для первого типа компилятор не делает слишком много оптимизаций


Верно, только какое это имеет отношение к "запуску под отладчиком"?
Re[20]: 32 bit
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.03.23 22:13
Оценка:
Здравствуйте, Sharov, Вы писали:

S>>>Под отладчиком, если без лишний действий, будет запускаться отладочная версия

ЕМ>>"Лишних" — это каких?

S>Как минимум перелючение типа сборки из debug в release.


Вставьте в программу операцию, заведомо вызывающую необрабатываемое исключение, переключите в Release, соберите и запустите. Кто обработает исключение?
Re[19]: 32 bit
От: pilgrim_ Россия  
Дата: 17.03.23 22:28
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Верно, только какое это имеет отношение к "запуску под отладчиком"?


Для .NET есть разница в запуске релиза под отладчиком и без. При запуске релизной сборки (сам .NET "код" в релизе и дебаге одинаковый, для релиза просто соотв. флаг проставляется, так было в старом .NET) под отладчиком JIT генерит нативный код, отличный от того, если запустить сборку без оного. При желании посмотреть сгенерённый код без влияния отладчика использовалась техника запуска сборки (приложения) без отладчика, с дальнейшем аттачем к процессу.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.