🤓Статический анализ кода в Unity 😉 Когда команда разрастается, время на ревью у старших разработчиков, тех/тим лидов также увеличивается. 😉 В результате, то время, которые бы они потратили на условно сложные задачи, тратится на написание замечаний по стайл коду (или около того). Если это джун/стажер или просто новый член команды — таких замечаний может быть много. ❗️ Значит это нужно оптимизировать, автоматизировать. На помощь приходят инструменты статического анализа. Грамотно написанный ста...
Minutri | Unity
Канал о разработке на Unity, C# и GameDev в целом. Обо мне: Senior Unity developer https://t.me/minutri/2 Для связи: @MinutriNet
Графики
📊 Средний охват постов
📉 ERR % по дням
📋 Публикации по дням
📎 Типы контента
Лучшие публикации
20 из 20📈 Увеличение производительности с помощью IL2CPP. SPARSEHASH Вышла интересная статья от техлида Алексея Мерзликина. В ней он рассматривает Sparse_hash_map и Dense_hash_map — форматы хранения хешмапы в плюсах. И оба они гугловские. Думаю, основной аудитории канала, обяъяснять, что такое хеш-таблица не нужно. Но напишу о двух из рассматриваемых способах хранения: 🥱 Sparse_hash_map — мало жрет памяти, но работает медленней. 🔥 Dense_hash_map — жрет памяти больше, но и работает быстрее. Метаданные...
Microsoft выпустил расширение Unity для Visual Studio Code. Это расширение базируется на C# Dev Kit и расширениях для C# и предоставляет комплексный набор инструментов для разработки Unity в Visual Studio Code для Windows, macOS и Linux. https://devblogs.microsoft.com/dotnet/unity-extension-for-visual-studio-code-now-generally-available/
👀🗑Сборка мусора в Unity? Путь GC.Collect(). Давайте проследим некоторый путь. Путь GC.Collect(). Но сначала. Что такое GC.Collect()? Это принудительный вызов сборки мусора. Во что превращается GC.Collect? Ведь мы знаем, что Unity использует другой сборщик, который называется Boehm GC, а следовательно GC.Collect должен во что-то транслироваться. Чтобы ответить на этот вопрос, нужно проследить путь преобразования кода. 1️⃣ Давайте напишем простой класс (Убираю лишние переносы в це...
🤨Некоторые кейсы работы с памятью в Unity, которые встречались на практике. Часть 1 1. DoTween В нем разработчики используют pool Tweneers, поэтому проблем с аллоцированием твинеров нет. А вот в конструкциях типа: camera.DOShakeRotation или Transform.DOMoveZ там есть некоторое выделение памяти после использования. Каждая анимация DoTween выделяет мусор. Как правило это не критично. Оптимизацию следует начинать не с этого. Но знать об этом — кажется полезным. Для решения можно использовать кешир...
🤓 Аргументы методов В ходе обсуждения значимого и ссылочного типов, встает вопрос о месте их хранения. Про значимый тип в аргументах методов говорят, что его экземпляр хранится на стеке. Так ли это? Небольшая справка: —— 😉 Скорость обращения к регистру ЦП значительно выше, чем к тем данным, которые лежат на стеке. 😉 Регистры подключены напрямую к ALU ЦП, поэтому, для упрощения, - обращение к регистрам требует один такт. 😉 С другой стороны, как только мы достаем данные из стека, все усложняет...
👀🗑Сборка мусора в Unity? Часть 5 Продолжаем по сборщику мусора. 🤬Я в придачу еще и заболел. Не обессудьте, но посты пока реже. Врываемся с двух ног. Так как, наконец, переходим к самому процессу сборки. Немного заумный текст, но полезно ознакомиться. Из первой статьи мы знаем, что вторая фаза — это фаза маркировки. С неё мы и начинается сборка. На этой фазе Boehm GC отмечает все объекты, к которым можно получить доступ через цепочки указателей на переменные. Представляйте это как деревья. Дер...
👀🗑Сборка мусора в Unity? Часть 6 После завершения сканирования и маркировки начинается сбор нод в куче. Логика запускается в методах GC_finish_collection -> GC_start_reclaim 1) Перед процессом этого этапа, очищаются ноды в памяти, в связанном списке OK_FREEList. Этот список нужен для того, чтобы добавить в него ноды в памяти, на которых нет ссылок. 2) Очищается OK_reclaim_list — это поле заголовка, которое специально установлено для освобождения небольших нод в памяти. 3) Вызов метода GC_apply...
🤓CI/CD. Зачем нужно непрерывное развертывание (CD)? Целью CD является доставка измененной версии приложения в эксплуатацию. Из книги: В отделе маркетинга одного предприятия — назовем его «Big Money Online Commerce Inc.» — решили пересмотреть процедуру регистрации на сайте своего интернет-магазина. Целью было привлечение новых клиентов и увеличение объема продаж. 🛑Из-за отсутствия CD возникли проблемы: — на рабочем окружении оказались конфиги для теста, а не для релиза. — после кодефриза (по вс...
☄️Давно не было статей на счет собеседований. Исправляемся. Мне как-то задали интересный вопрос. "Зачем ты даешь советы как проходить собеседования, если ты же сам будешь собесить людей, а они тупо заучат ответы на вопросы и при этом толком знать сами ничего не будут? То есть проверка человека за счет собеседования будет минимальной". На что я в ответ сформулировал свое видение по поводу собеседований. И хотел бы поделиться здесь. 🛑 Как мы знаем, есть техническая часть собеса, есть нетехническа...