LINUX.ORG.RU
ФорумTalks

Тормоза андроида скоро исправят

 ,


1

0

Появился препринт (с видео и звуком) доклада «Оптимизации I/O стека в смартфонах» с конференции ATC'13, которая началась 26 августа и закончится в эту пятницу.

The Android I/O stack consists of elaborate and mature components (SQLite, the EXT4 filesystem, interrupt-driven I/O, and NAND-based storage) whose integrated behavior is not well-orchestrated, which leaves a substantial room for an improvement. We overhauled the block I/O behavior of five filesystems (EXT4, XFS, BTRFS, NILFS, and F2FS) under each of the five different journaling modes of SQLite. We found that the most significant inefficiency originates from the fact that filesystem journals the database journaling activity; we refer to this as the JOJ (Journaling of Journal) anomaly. The JOJ overhead compounds in EXT4 when the bulky EXT4 journaling activity is triggered by an fsync() call from SQLite. We propose (i) the elimination of unnecessary metadata journaling for the filesystem, (ii) external journaling and (iii) polling-based I/O to improve the I/O performance, primarily to improve the efficiency of filesystem journaling in the SQLite environment. We examined the performance trade-offs for each combination of the five database journaling modes, five filesystems and three optimization techniques. When we applied three optimization techniques in existing Android I/O stack, the SQLite performance (inserts/sec) improved by 130%. With the F2FS filesystem, WAL journaling mode (SQLite), and the combination of our optimization efforts, we improved the SQLite performance (inserts/sec) by 300%, from 39 ins/sec to 157 ins/sec, compared to the stock Android I/O stack.

Вольный перевод:

Стек ввода/вывода Андроида состоит из разных составных частей (SQLite, файловая система EXT4, ввод/вывод основанный на прерываниях, и NAND-хранилище), суммарное поведение которых не является хорошо-организованным, что дает возможности для его улучшения. Мы тщательно рассмотрели поведение блочного ввода/вывода для пяти файловых систем (ext4, xfs, btrfs, nilfs и f2fs) для каждого из пяти возможных вариантов работы журнала SQLite. Мы обнаружили, что самая значительная неэффективность работы связана с тем, что файловая система ведет журнал журнала базы данных; мы называем это аномалией JOJ (журналирование журнала). JOJ проявляется в ext4, когда запись в журнал вызвана функцией fsync() из SQLite. Мы предлагаем (1) ликвидацию ведения журнала избыточных метаданных для файловой системы, (2) внешнего журналирования и (3) избирательного ввода/вывода для повышения производительности ввода/вывода, главным образом повысив эффективность ведение журнала файловой системы в среде SQLite. Мы исследовали влияние на производительность для каждого из пяти режимов работы журнала БД, пяти файловых систем и трех техник оптимизаций. Затем мы применили три техники оптимизации в нынешней системе ввода/вывода Андроид и получили повышение производительности операции INSERT на 130%. Для F2FS и режима журнала SQLite WAL результат наших усилий дал 300% увеличение производительности, с 39 insert/с до 157 insert/с по сравнению с текущим Андроид.

Работа была проведена сотрудниками Samsung Electronics совместно с университетом Ханьянг в Южной Корее: Sooman Jeong (Hanyang University), Kisung Lee (Samsung Electronics), Seongjin Lee (Hanyang University), Seoungbum Son (Samsung Electronics), Youjip Won (Hanyang University).

★★★★★

Последнее исправление: gh0stwizard (всего исправлений: 1)
Ответ на: комментарий от shahid

Хоть и нет в ней SQL

Вроде (если не путаю) она может быть storage engine для MariaDB. Тогда появляется SQL :)

KRoN73 ★★★★★
()
Ответ на: комментарий от derlafff

Я уже год слышу как у тебя всё быстро работает. Но я не помню просил ли я у тебя пруфвидео.

А вообще, тормоза это понятие субъективное. Мне уже кто-то показывал видео «как у меня быстро работает андроид». Единственное что могу сказать так это то что скорость была лажовая, но постоянно лажовая.

true_admin ★★★★★
()
Ответ на: комментарий от Lavos

Убей автора прошивки и воткни ядро с минимальной 800 или выше. Пару процентов батареи разменяешь на отсутствие тормозов.

steemandlinux ★★★★★
()
Ответ на: комментарий от tazhate

если твоя личная жизнь наладилась, то мы рады за тебя. а теперь дубь добр отойди в сторонку. не мешай менее удачливым товарищам

der_looser ★★
()
Ответ на: комментарий от KRoN73

Поднял приоритет GUI, понизил приоритет чисто фоновых процессов — всё начинает бегать куда мягче, плавнее, шустрее…

А каким образом это сделать, простите?

Igron ★★★★★
()
Ответ на: комментарий от der_looser

если твоя личная жизнь наладилась, то мы рады за тебя. а теперь дубь добр отойди в сторонку. не мешай менее удачливым товарищам

«дудь добр» не лезь к дядям, маленький еще.

tazhate ★★★★★
()
Ответ на: комментарий от true_admin

У этого модератора нет макбука. Можно немного расслабиться.

Mitre ★★
()
Ответ на: комментарий от Igron

А каким образом это сделать, простите?

ionice, вроде, никак. А nice — через renice :)

Но это годится только для тестов. Даже если в init-скрипт прописать, то далеко не на всё применить можно. Приоритет GUI так почему-то вообще не поднимается (даже когда скрипт с 30 сек. задержкой это делает, мало ли, процессы ещё не пошли), конечные приложения легко умирают и запускаются уже с другими PID.

KRoN73 ★★★★★
()
Ответ на: комментарий от tazhate

может еще предложишь сканами паспортов померяться? раз и навсегда уясним кто тут маленький, а у кого 250 и в диаметре 50.

з.ы. ничего личного. скор срезать хочу. комплексую я как-то по поводу его роста.

der_looser ★★
()
Ответ на: комментарий от der_looser

з.ы. ничего личного. скор срезать хочу. комплексую я как-то по поводу его роста.

Я если срежу, то навсегда. За сим кончай страдать бурдой.

tazhate ★★★★★
()
Ответ на: комментарий от stevejobs

что?

Что видел :)
Хром юзает sqlite, внезапно.

tazhate ★★★★★
()
Ответ на: комментарий от true_admin

Модератор назвал тебя своей радостью. Я бы насторожился.

Ты тоже моя радость. Настораживайся :)

tazhate ★★★★★
()
Ответ на: комментарий от cipher

Ты поэтому ушел, да? :)

Недалеко ушёл, см коммент выше :((

true_admin ★★★★★
()
Ответ на: комментарий от tazhate

так я и не прошу скинуть на пол часика. мне бы его подкорректировать до ровных 128, а потом уже сам буду заботиться. благо опыта чуток набрался, троллить вот учусь по вечерам.

der_looser ★★
()
Ответ на: комментарий от tazhate

Лолки, ну, будет смс быстрее читать

У меня смски/контакты/книжки в фбридере действительно долго открываются. Так что будем ждать багфикса.

drull ★☆☆☆
()
Ответ на: комментарий от mephistopheles

Ну или как минимум переписать все UI часть. Желательно с использованием Qt и QML.

mephistopheles ★★
()
Ответ на: комментарий от steemandlinux

Проблема видимо в говнотегре или говномтк

Если руки и мозг не в заднице, то ничего не тормозит.

потому что самые ядреные тормоза на них.

Тормоза - в голове у юзера, у которого вся система засрана левыми игрулями, виджетами и анимированными обоями.

devl547 ★★★★★
()
Ответ на: комментарий от devl547

Тормоза - в голове у юзера, у которого вся система засрана левыми игрулями, виджетами и анимированными обоями.

Я влезу в спор с фактами. Если почитать сабж, то очень странными выглядят цифры: 39 инсертов в секунду. Это целых 25 мс! Такая скорость возможно была на самых быстрых БД в 90е годы на первопнях или допнях. Такая скорость это просто позор в наши дни. Лучше писать все файлы :) В чем может быть проблема? Кроме самой архитектуры БД явно имеет место быть тормоза NAND-памяти и/или его контроллера. Я не спец в этой теме, но вики подсказывает, что операция удаления занимает несколько миллисекунд, а чтение варьируется от нано до микросекунд.

И главные претензии к андроиду именно в том, что загрузка приложений занимает очень большое по нынешним меркам время. А организация работы памяти в андроиде, как ты знаешь, удаляет все лишнее из памяти, когда необходимо (а это часто необходимо, если менее 2гб озу). Также имеется специальный раздел для Dalvik cache, который также находится на диске.

Также стоит взглянуть на эту статью (все можно затестить лично; возможно предвзята, ибо автор сами знаете кто), где сказано, что dalvik в 2-3 медленнее java se embed.

gh0stwizard ★★★★★
() автор топика
Последнее исправление: gh0stwizard (всего исправлений: 1)

Ждём sqliteFS

Vit ★★★★★
()
Ответ на: комментарий от steemandlinux

Я видел пяток девайсов на тегре3 и все они тормозные. Как такое может быть Omap 4430 не тормозит, а Tegra 3 тормозит?

У меня девайс на тегре 3, и он не тормозит. ЧЯДНТ?

Black_Shadow ★★★★★
()
Ответ на: комментарий от Black_Shadow

Я видел пяток девайсов на тегре3 и все они тормозные. Как такое может быть Omap 4430 не тормозит, а Tegra 3 тормозит?

У меня девайс на тегре 3, и он не тормозит. ЧЯДНТ?

И у меня девайс на тегре 3. Тормозит. Но там скорее память дохлая, чем сама тегра виновата)

cipher ★★★★★
()
Ответ на: комментарий от stevejobs

Можно. Либо через тулчейн, либо прямо на железке. Вообще все что угодно можно собрать приложив патчи.

gh0stwizard ★★★★★
() автор топика
Ответ на: комментарий от devl547

Тормоза - в голове у юзера, у которого вся система засрана левыми игрулями, виджетами и анимированными обоями.

Да, действительно, зачем нужна система, если ей не пользоваться? Виджеты, игрули и обои - штатный функционал, который обязан работать хорошо. Либо выпилите его нафиг с пометкой «WONTFIX».

cipher ★★★★★
()
Ответ на: комментарий от steemandlinux

Omap 4430 не тормозит, а Tegra 3 тормозит?

Бугагага, такого толстого 4.2 я еще не видел.
Прямо сейчас у меня тут лежит Archos 101 G9 Turbo (OMAP4460 и гиг памяти) и Nexus 7.
Так вот - Nexus рвет конкурента, как стоячего.

devl547 ★★★★★
()
Ответ на: комментарий от cipher

Виджеты, игрули и обои - штатный функционал, который обязан работать хорошо.

Так он и работает. Даже на китайских звонилках на MTK за 100 бакинских.

Но ТС хочет перевозить слона на детском велосипедике.

devl547 ★★★★★
()
Ответ на: комментарий от KennyMinigun

Так это же хорошо. А когда падает поделие на жабе (например игрушка Towers N' Trolls) подвисает на пару секунд вообще всё, даже ланчер.

Lavos ★★★★★
()

понагородят линукса на линуксе, extfs на extfs а потом тормозит всё

Karapuz ★★★★★
()
Ответ на: комментарий от derlafff

600Мгц, одно ядро, тормозов нет, ЧЯДНТ?

1.4 ГГц, одно ядро, породистый Qualcomm S2, MIUI (на основе циана) - тормозит.

h31 ★★★★
()

Зелёная башка тормозит из-за медленных SD-карточек. Что они там оптимизировать собрались, мне по барабану, пускай Dalvik выкинут лучше. А лучше этого кукушонка не трогать, сам помрёт.

MiniRoboDancer ★☆
()
Ответ на: комментарий от h31

Хех. Поставил slimbean, он просто летает по сравнению с miui :) Клава крутая, правда переключалка языка неудобная.

И кажется он флешку запорол. Пришлось переформатировать.

gh0stwizard ★★★★★
() автор топика
Последнее исправление: gh0stwizard (всего исправлений: 1)
Ответ на: комментарий от tazhate

Похоже, оно даже для прикладного софта слишком тормознутое, раз уж вот такие доклады появляются. Типа: «А давайте покоцаем систему так, чтобы наша быдлокодерская софтина работала быстрее! Ну пофиг же наа надёжность - она у нас от этого не упадёт!».

Quasar ★★★★★
()
Ответ на: комментарий от vurdalak

vurdalak> Это всегда было. У лоровцев тормозят иксы, джава, питон, андроид и qt. Не KDE, не GNOME, не GTK, не HTML5, не быдлокод.

fixed

Quasar ★★★★★
()
Ответ на: комментарий от devl547

А я совсем забыл, нексус 7 был первым девайсом на тегре3 который не тормозил. Однако HTC One X, ASUS Transformer 300/700 и какая-то Sony были адскими тормозами.

Omap 44xx чтобы не тормозил надо тюнить ядро насчет минимальной частоты, оно очень тормознуто меняет множитель.

steemandlinux ★★★★★
()
Ответ на: комментарий от Quasar

Гыыы, вам баба Лера неправильную информацию предоставила. У кваллкома самый быстрый interactive. А рокчип просто дешевый.

steemandlinux ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.