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

Как победить нагрев телефона? playcanvas 60fps, в 30 не греет

но плавность нужна

5 ответов

19 просмотров

Надо смотреть что жрет, какие блоки кода. Есть ли утечки, отладка памяти по маякам. Например если даже просто глянуть Цикл в рантайме переспрашивает все элементы, или можно заменить на логику перенастройки / переназначения новыми данными вместо перебора и тп. Текстуры уменьшить, тесты сделать, оптимизировать. Нет ли бутылочного горла и тп. Отсекать. Может тени напр. и рендер сам может логика. Тут обширный вопрос как код оптимизировать вообще. Упростить найти причину для начала, а затем уже искать решение. Типа если очень много элементов- можно lod-ы использовать

Daniil Suddenly4
Надо смотреть что жрет, какие блоки кода. Есть ли ...

А что в качестве маяков использовать для засекания текущего объёма заюзанной памяти?

GDv
А что в качестве маяков использовать для засекания...

я не батька, джун тока, так просто общие сведения имею, что-то ковырял, что-то видел... Лучше почитать про отладку / оптимизацию, в частности в рантайме и в совокупности все прочекать. -в браузере можно ставить метки/ тайминг от одной до другой функции. -можно автотесты писать можно тупо использовать и засекать: 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-ом

Daniil Suddenly4
я не батька, джун тока, так просто общие сведения ...

Так асинхронные блоки на том же ядре же выполняются, соответственно грузить также будут, это же ничего не поменяет. Или ошибаюсь?

GDv
Так асинхронные блоки на том же ядре же выполняютс...

тут смотря как у него код пишется, сам тайминг как завязан еще, т.е. кадры могут пропускаться - но обязательно нужно чтобы- что-то случилось через определенное время, не привязанное например к RAF, а к мировому и тп, а могут рисоваться все кадры, но медленее будет, пока не нарисует все к следующему не перейдет. Лучше другие подскажут. Т.е. Также мы можем raf включать, когда что-то делаем на событиях, а может он быть в постоянке и флаги будут висеть с функциями и слушать.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта