Articles of Оптимизация

Оптимизация огромного рисунка VBO на устройствах Android / iOS

Что мне нужно сделать, так это сделать относительно огромную изометрическую карту на мобильном устройстве (OpenGL ES2.0, Android 4.2). Я использую 1 VBO для местности, 1 VBO для теневого слоя и 1 VBO для слоя объектов. Эффективность – это проблема, даже с самого первого VBO. Здесь мы идем, у меня есть тип данных для заполнения VBO: […]

Является ли это полезной оптимизацией для циклов в java?

Рассмотрите следующее: 1. for (final Bar a : bars) { for (final Foo f : foos) { doSomethingWith(f.foo(), a.bar()); } } а также : 2. for (final Bar a : bars) { final Object bar = a.bar(); for (final Foo f : foos) { doSomethingWith(f.foo(), bar); } } Является ли такая оптимизация действительно полезной или […]

Точность выключения резьбы

Я экспериментировал с кодами для различных методов синхронизации. Один из способов создать задержку – запустить поток, используя thread.sleep (millis), но очень хорошо сказано, что время, в течение которого поток «пробуждается», не так точно и может быть до или после этого времени. Затем я столкнулся с определением, где есть возможность использовать thread.sleep (millis, nanos), где nanos […]

Как оптимизировать приложения для Android для нескольких ядер

Благодаря наличию телефонов Android с несколькими ядрами, как разработчики приложений могут убедиться, что их приложение использует дополнительную вычислительную мощность этих ядер. Насколько я понимаю, единственное, что могут сделать разработчики приложений, – сделать их приложение многопоточным и позволить ядру android заботиться о делегировании задач на разных ядрах. Я хотел бы знать, есть ли что-то еще, что […]

Общие ошибки производительности на Android?

Каковы самые легкие ошибки, которые могут быть причиной потери производительности на Android? В документации упоминается, что «некоторые операции с плавающей запятой» могут быть «порядка миллисекунд» – кто-то протестировал это? Для обсуждения предположим, что он работает на G1 / аналогичном устройстве.

Рисование (фильтрация) 100k + указывает на MapView на Android

Я пытаюсь решить проблему с рисованием пути от огромного (100k +) набора GeoPoints к MapView на Android. Во-первых, я хотел бы сказать, что я много раз искал через StackOverflow и не нашел ответа. Узкое место моего кода на самом деле не Rect.contains(point.x, point.y) в холсте, а Projection.toPixels(GeoPoint, Point) или Rect.contains(point.x, point.y) Point.y Rect.contains(point.x, point.y) Я […]

Невозможно добиться 60fps рендеринга простого квада, Android, Opengl ES 2.0

Я работаю над простой игрой типа «понг», чтобы справиться с opengl и андроидом, и, похоже, столкнулся с кирпичной стеной с точки зрения производительности. У меня есть логика игры в отдельном потоке, причем команды рисования отправляются в поток gl через блокирующую очередь. Проблема в том, что я застрял на скорости около 40 кадров в секунду, и […]

Лучший способ обработки ссылок Firebase с Android

Когда вы работаете с данными Firebase (читать, писать …) в приложении для Android, вам нужно получить ссылку на firebase, чтобы иметь возможность обрабатывать данные. Поскольку ссылка Firebase является деревом JSON, если вы указываете корень дерева, вы можете всегда обращаться к ребенку, не имеет значения, насколько глубоко. Вопрос: какой способ лучше всего использовать в памяти, а […]

Избавление от переустановки в ListView с фоном для каждого элемента

Я работаю с ListView где элементы списка имеют фоновый ресурс. Я хочу избавиться от так много, как могу. Мне известно о публикации Case Case Study в блоге Ромен Гая, но у меня проблемы с оптимизацией списка. Код для упрощенного примера показан внизу этого сообщения. Пример – это просто мастер «новой активности» с включенным списком. Мой […]

Оптимизация кода Java / Android: устраняет ли Java недостижимый код при сборке

Пожалуйста, взгляните на этот образец андроида кода: private static final boolean aBoolean = false; … if(aBoolean){ //do something like logs } В этом случае, поскольку значение aBoolean является ложным и что он не может измениться во время выполнения, будет ли // делать что-то вроде инструкции logs при построении или будет ли он все еще собираться […]