Недавно наша студия завершила разработку большого обновления — Captain Antarctica: Endless Run — для устройств на iOs. Кропотливая работа над обновлением затронула производительность, которая оказалась очень низкой на слабых устройствах. Я боролся с этим целую неделю и добился как минимум 30 FPS, а также значительного сокращения размера приложения. Хочу рассказать, как я это сделал, ну и как делать не стоит.
Статья пригодится любым разработчикам на Unity (причем не только менеджерам проектов и техническим специалистам, но и просто программистам, художникам и дизайнерам), потому что она затрагивает как оптимизацию на Unity в целом, так и конкретно оптимизацию 2d-приложений для мобильных устройств.
Читать полностью »
Метка «optimization» - 2
Оптимизация 2d-приложений для мобильных устройств в Unity3d
2013-02-14 в 14:56, admin, рубрики: 2d игры, Captain Antarctica, game development, optimization, unity3d, метки: 2d игры, Captain Antarctica, optimization, unity3dОткуда растут ноги у hashCode
2013-01-14 в 9:08, admin, рубрики: hashCode, java, JVM hacks, optimization, performance, метки: hashCode, JVM hacks, optimization, performance Опять на собеседованиях по Java спрашивают про hashCode
и equals
? А кто из собеседующих сам ответит на вопрос, как вычисляется Object.hashCode()
и System.identityHashCode()
? Насколько дорог вызов этих методов? Как их можно ускорить в HotSpot JVM? Держу пари, едва ли кто даст правильный ответ. Разве что, кто прочитает эту статью.
Читать полностью »
Строим прочный прозрачный frontend
2013-01-11 в 8:59, admin, рубрики: html, javascript, optimization, patterns, web, Веб-разработка, Проектирование и рефакторинг, метки: html, javascript, optimization, patterns, web, ооп, фронтендВ автомобиле, если нет сидения, то двигатель будет работать всё равно, а если двигатель сломается, то ручной тормоз от этого не пострадает. Это большая система независящих друг от друга модулей, которая продолжает работать после отказа одного из них и позволяет быстро определять проблемный модуль. Водителю же, в идеале, нет необходимости знать, как устроен мотор или тормоз, каждый модуль предоставляет ему простой интерфейс, такой, например, как педаль газа или кнопка включения фар.
В последующем тексте мы рассмотрим вариант абстракции над HTML кодом, который упрощает разработку и поддержку похожим принципом, благодаря слабым связям и модульности. Такой подход успешно используется автором в двух долгосрочных проектах, один из которых — сервис интернет-банкинга.
Читать полностью »
AWS Insight: Резервации в EC2 — как это работает
2012-12-12 в 11:43, admin, рубрики: AWS, aws insight, optimization, метки: aws, aws insight, optimizationПривет!
Как известно, одним из основных правил использования облачных сервисов является оптимизация всего, а особенно финансовой стороны вопроса. В Amazon Web Services есть 3 основных метода оптимизации стоимости сервиса:
- автомасштабирование
- резервирование
- использование спот инстансов
Сегодня я расскажу о резервировании в EC2, как, что и зачем это нужно обязательно делать.
Reservation — это предварительная оплата серверных мощностей, позволяющая значительно уменьшить расходы на эти же самые мощности. Существует 3 вида резервации:
- Облегчённого использования — Light Utilization
- Среднего использования — Medium Utilization
- Усиленного использования — Hard Utilization
Оптимизация цикла for — миф или реальность?
2012-10-09 в 12:01, admin, рубрики: for, javascript, optimization, оптимизация кода, метки: for, javascript, optimization, оптимизация кодаГоворя об оптимизации JavaScript можно увидеть множество примеров того, как следует делать или не делать. Мнения некоторых авторов звучат убедительно, их примеры внушают уверенность. И главным образом, подобных рекомендаций в сети много, но значительно меньше статистики по ним. Вот и сегодня на страницах GitHub'а в поле зрения был пойман ранее знакомый теоретический материал по оптимизации циклов for.
Как ускорить insert в SQLite
2012-10-08 в 12:54, admin, рубрики: android development, optimization, sqlite, базы данных, Песочница, Разработка под android, метки: android development, optimization, sqlite, базы данных, Разработка под androidДоброго времени суток. В своем первом Android приложении я сразу столкнулся с необходимостью работать с БД. Мне необходимо было предоставить своим пользователям стартовый набор данных(около 5000-6000 записей), с которым они смогут работать «из коробки». Было принято решение прикрепить к приложению текстовый файл с данными в виде JSON, при первом запуске распарсить их и положить в базу. О том, как делать это неправильно и как потом радоваться приросту производительности после рефакторинга, можно прочесть дальше.Читать полностью »
Новое API в Gingerbread — StrictMode. Или боремся с ANR-диалогами
2012-10-03 в 8:31, admin, рубрики: debugging, development, optimization, performance, переводы, Разработка под android, метки: debugging, development, optimization, performanceНедавно открыл для себя StrictMode, прочитав статью на Android Developers Blog. Ниже представляю Вам ее перевод.
За сценой
Одна из клевых вещей в Google — это «20% времени»: 20% от своего рабочего времени вы имеете право заниматься проектами, не имеющими никакого отношения к вашему основному проекту. Когда я пришел в Google, я постоянно переключался с проекта на проект и часто шутил по этому поводу, что у меня 7 таких 20%-ных проектов. Один из проектов, к которому я постоянно возвращался, был Android. Мне нравилась открытость платформы, которая давала мне возможность делать все, что я хотел, в том числе открывать двери моего гаража, когда я подъезжал к своему дому на мотоцикле. Я действительно хотел, чтобы этот проект был успешным, но я беспокоился об одном: Android никогда не был быстрым. Подтормаживающие анимации и элементы пользовательского интерфейса, которые не всегда сразу реагируют на ввод данных. Было очевидно, что причина этого — задачи, выполняющиеся не в том потоке.
Я являюсь активным пользователем SMS и одним из моих 20%-ных проектов в ходе подготовки релиза Cupcake (Android 1.5) стала оптимизация приложения обмена сообщениями. Я оптимизировал его и сделал более плавным, а затем продолжил метаться между другими своими 20%-ными проектами. После выхода релиза Donut (Android 1.6), я заметил, что некоторые из моих оптимизаций случайно оказались сломанными. Мне было немного обидно, но затем я понял, что Android действительно всегда не хватало, так это готового к использованию, встроенного, всепроникающего средства мониторинга производительности.
Я присоединился к команде разработчиков Android на полный рабочий день чуть более года назад и провел много времени за исследованиями проблем производительности во Froyo. В частности посвятил много времени борьбе с ANR-диалогами (вы видите эти раздражающие диалоги, когда приложение выполняет длительные операции внутри основного UI потока). Отладка этих диалогов, с помощью имеющихся инструментов, была трудной и утомительной. Их было не достаточно чтобы найти причину, особенно, при взаимодействии нескольких процессов (например, обращения из Binder'ов или ContentResolver'ов к Service'ам или ContentProvider'ам в других процессах). Необходим был более совершенный инструмент для отслеживания притормаживаний интерфейса или ANR-диалогов.
Читать полностью »
Оптимизация OSX для работы с SSD
2012-05-22 в 17:13, admin, рубрики: apple, hdd, mac os x, macbook, macbook pro, optimization, ssd, trim, upgrade, оптимизация, метки: hdd, mac os x, macbook, macbook pro, optimization, ssd, upgrade, оптимизация Про замену сидирума на SSD писать нет смысла, думаю все и так уже в курсе как это сделать. Слава богу, про это написано не мало статей (тыц, тыц).
А вот как правильно настроить систему для работы с HDD и SSD знают далеко не все.
Читать полностью »