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

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

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

5 ответов

11 просмотров

Надо смотреть что жрет, какие блоки кода. Есть ли утечки, отладка памяти по маякам. Например если даже просто глянуть Цикл в рантайме переспрашивает все элементы, или можно заменить на логику перенастройки / переназначения новыми данными вместо перебора и тп. Текстуры уменьшить, тесты сделать, оптимизировать. Нет ли бутылочного горла и тп. Отсекать. Может тени напр. и рендер сам может логика. Тут обширный вопрос как код оптимизировать вообще. Упростить найти причину для начала, а затем уже искать решение. Типа если очень много элементов- можно 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 включать, когда что-то делаем на событиях, а может он быть в постоянке и флаги будут висеть с функциями и слушать.

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
63
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
25
Книга Юрова В.И пойдёт для обучения?
Botsman
24
Люди добрые, помогите с идеями, потому что свои закончились. У клиента падает софтина в момент инициализации модуля OtlEventMonitor на RegisterWindowMessage('Gp/OtlTaskEvents/...
Михаил Усков
7
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
> Примечательно, что новый владелец удаляет из GitHub любые жалобы, указывающие на подозрительную активность или смену владельца, и, видимо, рассчитывает на то, что пользовате...
Alex Sherbakov
2
GridView fully ignored first parent(SizedBox), and take width from second parent(Container). How can I constrain GridView by first parent? Widget build(BuildContext context) {...
Hamster
1
Hey there Which is the best Linux destro for developers (coding)? To my research on reddit, they said Linux mint is good for mid level spec and Ubuntu for high Lev hardwar...
Wiz 🪄
11
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
а мы ещё не созрели до того, чтобы создать отдельный чатик про настройку редакторов?
Cheese Syrowiecki
16
Карта сайта