Перейти к контенту

Курилка программистов


Рекомендуемые сообщения

 

только прикрутить еще куда-то сбоку систему ивинтов и песочницу от одного конкретного автора (указать, какого именно) ?

 

Означает, что нет никакого смысла заниматься некрофилией в особо извращенной форме и перелопачивать вещи, которые уже давно у всех либо перелопачены, либо уже написано свое нормальное, которое и используется а о древости подобной все давно забыли. Это раз. Второе - рефакторинг - дело конечно хорошее, но только тогда когда он реально нужен. Ну то есть вообще вот совсем реально без него никак. В противном случае это чистый спорт, с претензией на рекорды. Спортивные, которые как бы вообще делаются только ради рекордов. Т.е. например нет никакого особого смысла рефакторить скрипты, которые стабильно работают и при этом вызываются допустим один раз при загрузке игры и далее вообще никак не дергаются. Потому что ну не нужно. Полученный миллисекундный выигрыш в скорости загрузки игры не компенсирует никак потраченного на рефакторинг времени. Это не говоря уже о том, что зачастую перестаравшись с рефакторингом, можно сделать текст модуля тупо нечитаемым, и затруднить себе последующую отладку и вообще работу с модулем.

  • Нравится 1
  • Согласен 2

Отладчик и скриптер мода OGSE. Автор схемы "Компаньоны", стреляющего БТРа и многих других полезностей :wink:

Поделиться этим сообщением


Ссылка на сообщение

 

Таки вопрос опять же: что делать с приведенным выше образцом ?

 

В музей моддинга Сталкера под стекло.

 

 

Указанные проблемы/возможность проблем (про "перестаравшись" и про затраты времени) - да, согласен, есть. Да, несомненно, есть спортивный элемент, в какой-то степени. Или не спортивный, а разгребая вот то, что, опять же, в приведенном примере - заодно и переписал.

 

 

Вы лучше вот что сделайте. В движке игры есть специальные функции для профилирования кода. Вот эти:

 

 

C++ class profile_timer {

    profile_timer ();

    profile_timer (profile_timer&);

 

    operator +(const profile_timer&, profile_timer);

    function stop();

    function start();

    function time() const;

    function __tostring(profile_timer&);

    operator <(const profile_timer&, profile_timer);

};

 

 

На них очень легко себе сделать инструмент для профилирования. Например вот такой:

https://dl.dropboxusercontent.com/u/54347025/ogse/ogse_profiler.script

 

Так вот очень советую перед тем как какие-то участки кода переписывать, замерить профилировщиком время их исполнения до рефактора. Затем если время кажется ну уж очень большим - сделать рефактор и проверить снова. Обычно (если в исходном скрипте не совсем уж лютый дерьмокод) полученные результаты напрочь, полностью и навсегда отбивают желание из спортивного интереса переделывать трейд-менеджер и остальное мелкое одноразовое добро. ^_^  Lua-подсистема на самом деле очень и очень быстрая, медленней всего в ней, как ни странно, работют вызовы функций из движка, поэтому даже тотальный рефактор всего и вся способен добавить не более нескольких процентов скорости (опять же если это не дерьмокод, где на каждом апе перебираются все 65535 объектов игры).

  • Согласен 1

Отладчик и скриптер мода OGSE. Автор схемы "Компаньоны", стреляющего БТРа и многих других полезностей :wink:

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...