Метка «optimization» - 2

Недавно наша студия завершила разработку большого обновления — Captain Antarctica: Endless Run — для устройств на iOs. Кропотливая работа над обновлением затронула производительность, которая оказалась очень низкой на слабых устройствах. Я боролся с этим целую неделю и добился как минимум 30 FPS, а также значительного сокращения размера приложения. Хочу рассказать, как я это сделал, ну и как делать не стоит.
Статья пригодится любым разработчикам на Unity (причем не только менеджерам проектов и техническим специалистам, но и просто программистам, художникам и дизайнерам), потому что она затрагивает как оптимизацию на Unity в целом, так и конкретно оптимизацию 2d-приложений для мобильных устройств.
Оптимизация 2d приложений для мобильных устройств в Unity3d
Читать полностью »

Откуда растут ноги у hashCodeОпять на собеседованиях по Java спрашивают про hashCode и equals? А кто из собеседующих сам ответит на вопрос, как вычисляется Object.hashCode() и System.identityHashCode()? Насколько дорог вызов этих методов? Как их можно ускорить в HotSpot JVM? Держу пари, едва ли кто даст правильный ответ. Разве что, кто прочитает эту статью.
Читать полностью »

В автомобиле, если нет сидения, то двигатель будет работать всё равно, а если двигатель сломается, то ручной тормоз от этого не пострадает. Это большая система независящих друг от друга модулей, которая продолжает работать после отказа одного из них и позволяет быстро определять проблемный модуль. Водителю же, в идеале, нет необходимости знать, как устроен мотор или тормоз, каждый модуль предоставляет ему простой интерфейс, такой, например, как педаль газа или кнопка включения фар.

В последующем тексте мы рассмотрим вариант абстракции над HTML кодом, который упрощает разработку и поддержку похожим принципом, благодаря слабым связям и модульности. Такой подход успешно используется автором в двух долгосрочных проектах, один из которых — сервис интернет-банкинга.
Читать полностью »

Привет! image

Как известно, одним из основных правил использования облачных сервисов является оптимизация всего, а особенно финансовой стороны вопроса. В Amazon Web Services есть 3 основных метода оптимизации стоимости сервиса:

Сегодня я расскажу о резервировании в EC2, как, что и зачем это нужно обязательно делать.

Reservation — это предварительная оплата серверных мощностей, позволяющая значительно уменьшить расходы на эти же самые мощности. Существует 3 вида резервации:

  • Облегчённого использования — Light Utilization
  • Среднего использования — Medium Utilization
  • Усиленного использования — Hard Utilization

Читать полностью »

Оптимизация цикла for — миф или реальность?Говоря об оптимизации JavaScript можно увидеть множество примеров того, как следует делать или не делать. Мнения некоторых авторов звучат убедительно, их примеры внушают уверенность. И главным образом, подобных рекомендаций в сети много, но значительно меньше статистики по ним. Вот и сегодня на страницах GitHub'а в поле зрения был пойман ранее знакомый теоретический материал по оптимизации циклов for.

Читать полностью »

Доброго времени суток. В своем первом Android приложении я сразу столкнулся с необходимостью работать с БД. Мне необходимо было предоставить своим пользователям стартовый набор данных(около 5000-6000 записей), с которым они смогут работать «из коробки». Было принято решение прикрепить к приложению текстовый файл с данными в виде JSON, при первом запуске распарсить их и положить в базу. О том, как делать это неправильно и как потом радоваться приросту производительности после рефакторинга, можно прочесть дальше.Читать полностью »

Недавно открыл для себя StrictMode, прочитав статью на Android Developers Blog. Ниже представляю Вам ее перевод.

image

За сценой

Одна из клевых вещей в 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-диалогов.
Читать полностью »

Про замену сидирума на SSD писать нет смысла, думаю все и так уже в курсе как это сделать. Слава богу, про это написано не мало статей (тыц, тыц).
image
А вот как правильно настроить систему для работы с HDD и SSD знают далеко не все.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js