но плавность нужна
Надо смотреть что жрет, какие блоки кода. Есть ли утечки, отладка памяти по маякам. Например если даже просто глянуть Цикл в рантайме переспрашивает все элементы, или можно заменить на логику перенастройки / переназначения новыми данными вместо перебора и тп. Текстуры уменьшить, тесты сделать, оптимизировать. Нет ли бутылочного горла и тп. Отсекать. Может тени напр. и рендер сам может логика. Тут обширный вопрос как код оптимизировать вообще. Упростить найти причину для начала, а затем уже искать решение. Типа если очень много элементов- можно lod-ы использовать
А что в качестве маяков использовать для засекания текущего объёма заюзанной памяти?
я не батька, джун тока, так просто общие сведения имею, что-то ковырял, что-то видел... Лучше почитать про отладку / оптимизацию, в частности в рантайме и в совокупности все прочекать. -в браузере можно ставить метки/ тайминг от одной до другой функции. -можно автотесты писать можно тупо использовать и засекать: function someMethodIThinkMightBeSlow() { const startTime = performance.now(); // Do the normal stuff for this function const duration = performance.now() - startTime; console.log(someMethodIThinkMightBeSlow took ${duration}ms); } - разделить высоконагруженный блок кода на асинхронные этапы-блоки - утечку смотреть ( разные средства, в т.ч. в браузере) - код переписать, облегчить алгоритмы, относительно их сложности: например массив большой с вложениями и если каждый элемент видоизменять в нем циклом, то это дольше чем несколько отдельных циклов, если каждый последующий все равно элементы взаимствуют данные из предыдущего в конечном итоге тоже и будет на выходе по сути, т.е. все может сильно повлиять на производительность - не использовать в рантайме то, что можно не использовать - лагометры подключить, смотреть нагрузка когда возрастает...cpu/gpu - всякие вещи по типу создание нового объекта и его удаление из памяти не делать, если можно настройками давать параметры... - там на самом деле список и сотни советов может быть, где то видел большой разбор- сравнение тоже по скорости, даже тупо очищение массива просто arr=[]; быстрее и стабильнее, чем другие способы, помимо специфики самой: - по типу использования мипмапов и лоадов, рейкаста для обзора и скрытия из рендера и вычислений, если в область не попадает, или деревьев / октодеревьев всяких, т.е. не вычислять то, что не нужно, что не видно, что необязательно и тп Лучше другие подскажут, я новичок в этом. Есть же еще бинарка, особонагруженные функции можно на железе писать js-ом
Так асинхронные блоки на том же ядре же выполняются, соответственно грузить также будут, это же ничего не поменяет. Или ошибаюсь?
тут смотря как у него код пишется, сам тайминг как завязан еще, т.е. кадры могут пропускаться - но обязательно нужно чтобы- что-то случилось через определенное время, не привязанное например к RAF, а к мировому и тп, а могут рисоваться все кадры, но медленее будет, пока не нарисует все к следующему не перейдет. Лучше другие подскажут. Т.е. Также мы можем raf включать, когда что-то делаем на событиях, а может он быть в постоянке и флаги будут висеть с функциями и слушать.
Обсуждают сегодня