LINUX.ORG.RU

История изменений

Исправление byko3y, (текущая версия) :

C++ поддерживает Hot Reload. C++ по интерактивности почти как JavaScript. О какой медленной компиляции ты всё время говоришь? Приходи когда твой Rust научится в Hot Reload

Хочется ответить чем-то вроде «как называется эта команда в GDB?».

Но давай трезво оценим: чтобы такой Hot Reload работал, в коде должны быть «слоты», символы функций, куда будет подставляться новый код; производительность неотпимизированного C++ кода на том же STL чудовищно плохая, потому что всё то zero-overhead-чудо без оптимизации становится совсем не zero, и то, что с оптимизацией делалось одной асмовой инструкцией, теперь превратилось в вызов двух пар конструкторов, деструкторов, и методов объектов, то есть, стало раз в пять медленнее выполняться. Для игр такая производительность неприемлима, что есть иронично, поскольку в примере показана именно игра. Точно такая же проблема была много лет назад в лиспе: компилятор не мог заоптимизировать код, потому что вдруг сейчас кто-то захочет сделать горячее обновление?

По поводу

C++ по интерактивности почти как JavaScript
https://youtu.be/x_gr6DNrJuM?t=75

Я пару лет писал на Vue.js, там как раз было горячее обновление, но хроническая проблема этого горячего обновления заключалась в том, что ты не знаешь, корректно ли у тебя обновилась программа и ты сейчас наблюдаешь багу в коде, или же это криво прошло горячее обновление и проблема исчезнет после перезагрузки. По итогу я часто после внесения изменений перезагружал приложение — вот такая вот «горячая перезагрузка». Да, для минимальных правки по стилям, как упомянутое в видео «изменить цвет/форму», вполне работало. К сожалению, ни для чего большего оно не работает.

Исходная версия byko3y, :

C++ поддерживает Hot Reload. C++ по интерактивности почти как JavaScript. О какой медленной компиляции ты всё время говоришь? Приходи когда твой Rust научится в Hot Reload

Хочется ответить чем-то вроде «как называется эта команда в GDB?».

Но давай трезво оценим: чтобы такой Hot Reload работал, в коде должны быть «слоты», символы функций, куда будет подставляться новый код; производительность неотпимизированного C++ кода на том же STL чудовищно плохая, потому что всё то zero-overhead-чудо без оптимизации становится совсем не zero, и то, что с оптимизацией делалось одной асмовой инструкцией, теперь превратилось в вызов двух пар конструкторов, деструкторов, и методов объектов, то есть, стало раз в пять медленнее выполняться. Для игр такая производительность неприемлима, что есть иронично, поскольку в примере показана именно игра. Точно такая же проблема была много лет назад в лиспе: компилятор не мог заоптимизировать код, потому что вдруг сейчас кто-то захочет сделать горячее обновление?

По поводу

C++ по интерактивности почти как JavaScript
https://youtu.be/x_gr6DNrJuM?t=75

Я пару лет писал на Vue.js, там как раз было горячее обновление, но хроническая проблема этого горячего обновления заключалась в том, что ты не знаешь, корректно ли у тебя обновилась программа и ты сейчас наблюдаешь багу в коде, или же это криво прошло горячее обновление и проблема исчезнет после перезагрузки. По итогу я часто после внесения изменений перезагружал приложение — вот такая вот «горячая перезагрузка». Да, для минимальных правки по стилям, как упомянутое в видео «изменить цвет/форму», вполне работало. К сожалению, ни для чего большего оно не работает.