Pull to refresh

Comments 10

Классно! Инструменты лишними не бывают никогда. А без Unity использовать можно? Чтобы отлаживать утечки память в произвольных Mono проектах?
В теории — можно, на практике пока нет. Проблема средних размеров, но её надо решить, прежде чем всё заработает: в произвольном Моно-проекте никаких кадров нет, и там надо бы группировать аллокации таки по времени с какой-то гранулярностью. Это потребует небольшой переделки DLLки профайлера, и чуть более геморойной — UI. Возможно, правильнее было бы сделать форк для «просто Mono», ну, или всё-таки отдельный режим. В общем, для меня лично это всё несколько out of scope по причине нехватки времени и сил, но пулл-риквесты приму :)
Ну а если речь об игре на MonoGame, OpenTK и т.д. — можно привязаться к какому-нибудь SwapBuffers() или там IDXGISwapChain::Present() для разделения по кадрам?
Да, наверное можно. Я почему не стал этого делать для Юнити — чтобы в рантайме не разбираться, что там включил разработчик — DirectX, OpenGL или Vulkan вообще. Возможно хорошим решением была бы какая-то система плагинов, которая бы для разных движков хукала разные функции самого движка (т.к. многие движки умеют разные рендереры) + отдельный режим без кадров.

EDIT: Если подумать, то вообще достаточно имя функции для перехвата в настройках, так-то…
Ну вот если бы была относительно простая возможность задать хук (или вручную вызвать какую-то функцию как разделитель кадров) и стартовать без Unity, я бы проверил на DX9, DX11, OpenGL и Vulkan, а может еще и на сервере. Но т.к. у меня нет Unity и в целом аллергия на него, то я даже не могу запустить профайлер и посмотреть его работу в живых условиях. А без этого патчить полностью незнакомый проект как-то не удобно.
Не могу обещать, что скоро добавлю возможность, но можно Issue создать. Я просто собаку завёл недавно (после того, как основную часть кода профайлера дописал), и сейчас ни на что времени не хватает :) Как всё устаканится, вернусь к задачам обязательно.
Спасибо за статью. Надо будет потестить.
Если что — пишите мне, я постараюсь разобраться! Тулза может быть местами сыровата (часть проблем занесена в Issues уже), но надеюсь будет небесполезна.
Sign up to leave a comment.

Articles