185 похожих чатов

А зачем вообще прогревать? почему бы сразу не скомпилировать

в машинный код? если не ошибаюсь такая опция была и в .net/jvm (конечно тогда не будет дальнейших оптимизаций в рантайме между сессиями, и только локально на машине сработает если не распространять)

25 ответов

40 просмотров

Если сначала собирать статистику, то качество (производительность) сгенерированного кода будет выше. Про PGO слышали?

Александр-Toon Автор вопроса
Alexander Chichigin
Если сначала собирать статистику, то качество (про...

уже подредактировал) ну да, про оптимизацию аргумент

потому что архитектура такая, джитованный код не очень «управляем» при прочих равных

Александр-Toon Автор вопроса
Mar Ort
потому что архитектура такая, джитованный код не о...

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

Александр Toon
ну я понимаю что если сгенерировать машинный код н...

кроме оптимизаций есть еще безопасность, переносимость, управляемость

Mar Ort
кроме оптимизаций есть еще безопасность, переносим...

как вы собрались верефицировать бинарник который вам по проводу прилетел?

Александр-Toon Автор вопроса
Mar Ort
кроме оптимизаций есть еще безопасность, переносим...

а зачем переносить? программа компилируется из il в машинный код один раз на целевой машине

Александр-Toon Автор вопроса
Mar Ort
когда «один раз»?

в первый момент использования например. или до первого использования чтобы сэкономить на прогреве

Александр-Toon Автор вопроса

ага, в .net тоже так же

Александр Toon
ага, в .net тоже так же

и там проблемы со временем старта к примеру асп дот нета

Александр-Toon Автор вопроса
jit.js
как загуглить?

в книге рихтера встречал

Александр-Toon Автор вопроса
jit.js
как загуглить?

вроде оно The Native Image Generator (Ngen.exe) is a tool that improves the performance of managed applications. Ngen.exe creates native images, which are files containing compiled processor-specific machine code, and installs them into the native image cache on the local computer. The runtime can use native images from the cache instead using the just-in-time (JIT) compiler to compile the original assembly.

Александр Toon
а что не так со стартом?

потому что фремворк на лету методы генерирует

Александр-Toon Автор вопроса
Mar Ort
потому что фремворк на лету методы генерирует

а зачем на старте то компилировать если можно заранее?

Александр Toon
а зачем на старте то компилировать если можно зара...

как вы заранее их скомпилируете если их приложение во время работы создает

Александр Toon
вроде оно The Native Image Generator (Ngen.exe) is...

я не берусь говорить авторитетно, поскольу в дотнете профан, но есть такой момент - кажется Егор Богатов говорил тут - что в обычной даже сборке дотнетовской, большинство методов уже за АОТ-чены

Кроме самой сборки профиля если сразу компилировать с2, то машина будет стоять и не выполнять полезную работу, пока не прокомпилируется

Это лучше у разработчиков JIT спросить. 😁 Как минимум — количество вызовов. Inline cache с информацией о типах, в принципе, тоже можно считать статистикой...

Alexander Chichigin
Это лучше у разработчиков JIT спросить. 😁 Как мин...

хотспот собирает все, что можно теоретически собрать, если в операции используется тип он собирается

Кстати, а как вообще работает эта штука с JIT который оптимизирует самые "горячие" участки кода?

Нейрофурран Гетероцикл
Кстати, а как вообще работает эта штука с JIT кото...

Обычно JIT оптимизирует не отдельные участки кода, а горячие функции целиком. Так что как бы "просто компилирует" отдельные функции и вызывает скомпилированные версии. Это опуская очень большое количество "интересных" деталей. 😁

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Карта сайта