В основную ветку репозитория AOSP (Android Open Source Project (https://source.android.com/)), в рамках которого развивается следующий выпуск платформы Android, приняты (https://android-review.googlesource.com/#/c/98553/) изменения (https://android-review.googlesource.com/#/c/98618/) по умолчанию активирующие для выполнения приложений новый runtime ART (http://source.android.com/devices/tech/dalvik/art.html) и отключающие использование runtime виртуальной машины Dalvik (libdvm.so).
ART позволяет в момент установки скомпилировать приложение в машинный код и в дальнейшем выполнять программу в нативном виде, без задействования виртуальной машины. Применение упреждающей AOT-компиляции (Ahead-of-time) вместо JIT-компиляции по мере выполнения кода позволяет заметно повысить производительность программ. Для компиляции в поставку включена утилита dex2oat, формирующая исполняемые файлы на основе файлов в формате DEX (http://source.android.com/devices/tech/dalvik/dex-format.html) (Dalvik Executable Format).
Повышению производительности также способствует использование в ART более изощрённого сборщика мусора, отличающегося активным распараллеливанием операций и минимизацией действий, приводящих в приостановке выполнения. Кроме того, при использовании ART применяются более жесткие методы проверки приложения в момент установки, а разработчикам предлагаются расширенные инструменты для отладки и профилирования.
Экспериментальная поддержка ART была добавлена в выпуске Android 4.4 (http://www.opennet.me/opennews/art.shtml?num=38310), но требовала для использования изменения настроек. Переход на ART в AOSP свидетельствует о том, что в следующем значительном выпуске Android данная технология будет применяться по умолчанию.URL: http://www.xda-developers.com/android/breaking-next-major-ve.../
Новость: http://www.opennet.me/opennews/art.shtml?num=40041
>AOT-компиляции (Ahead-of-time) вместо JIT-компиляции по мере выполнения кода позволяет заметно повысить производительность программНормального JIT не осилили.
Скорее всего до них дошло, наконец-то. Или мода пошла более благоприятная.
И все-таки компиляторы FTW...
Скажи же мне, что лучше, один раз посидеть на зарядке, понаустанавливать всякого и потом спокойно пользоваться быстрым нативным кодом или же заниматься компиляциями на ходу, всю энергию просаживая к вечеру, а то и к обеду?
Google родил .net. Ждем новых исков от ms?
Что, и AOT изобрели в Microsoft?
Там думают, что все изобрели, братюнь. Хотя, чем выше должность сотрудника, тем хитрее глаза.
А ты не знал?Байткод придумали Sun
AOT в Microsoft.
А интернет придумал Google.
А заплатить я так понимаю должен тебе, ну чтож говори кошелек биткоинов и сумму.
А закругленные прямоугольники - эппл.
А колесо придумали шумеры в Уруке. По сути могут всех затролить исками.
Не могут, т.к. в своё время не получили патент. ;)
вот жеж молодость
интернет придумал мелкосовт задолго до гугла :)
парни вы историю интернета не знаете?))) и про арпанет не слышали? ))) а точно сейчас все патенты у мелкомягких и они все изобрели))) даже термоядерный синтез что происходит на солнце.)) отсюда вывод солнце обязано отчислять майкрософт)))
> ... про арпанет не слышали?Мужики, он слишком много знает! o_O
Мужик, ты про сарказм слышал?!
Что-то типа AOT было ещё в AS/400. Так то M$ далеко не изобретатель :)
Там значительно интересней было>Unlike some other virtual-machine architectures in which the virtual instructions are interpreted at run time, TIMI instructions are never interpreted. They constitute an intermediate compile time step and are translated into the processor's instruction set as the final compilation step. The TIMI instructions are stored within the final program object, in addition to the executable machine instructions. This is how application objects compiled on one processor family (e.g., the original CISC AS/400 48-bit processors) could be moved to a new processor (e.g., PowerPC 64-bit) without re-compilation. An application saved from the older 48-bit platform can simply be restored onto the new 64-bit platform where the operating system discards the old machine instructions and re-translates the TIMI instructions into 64-bit instructions for the new processor.
Это всё частности.
Главное - помнить что весь этот мир просто снится Котовскому.
Не важно кто изобрел, важно у кого патент!
У Никласа Вирта в Эфеле подобная идея была. У него, правда, не в «процессе установки», а в «процессе первого исполнения».
Так глядишь и жабу выпилят, ждём ещё
> Так глядишь и жабу выпилят, ждём ещёЖдите. Может Go подгонят на её место. C/C++ небезопасный — чего стоит заложенное в ДНК языка и библиотек переполнение символьного буфера и null-терминейтед строки с алгоритмом Шлемиля.
Если язык рассчитан на не криворуких, то это не является его фатальным недостатком.
Покажи хоть одно более-менее сложное приложение написаннное на С/С++, не имеющее уязвимостей.
Э-э-э, жаба?
А не, она ж вечно уязвимая. Сори.
java или проги на java? Сама то джава на Си написана вроде.
А разве не на джаве?
Покажи хоть одно более-менее сложное написаннное приложение, не имеющее уязвимостей
Darcs?
> Если язык рассчитан на не криворуких, то это не является его фатальным
> недостатком.Покажи достаточное количество некриворуких :)
> C/C++ небезопасныйТолько чего-то ядро и библы на них писаны. Даже в ведроиде. Ну а вот подружить с ними сверху какой-нибудь Go для рисования гуя - нормально смотрелось бы вполне.
> заложенное в ДНК языка
Изя, это у тебя сбои в ДНК. Предъявлять бензопиле что ей оказывается покалечиться можно будет только полный идиoт. Понимаешь, не все инструменты которыми могут пользоваться взрослые люди являются безопасными. Это, блин, нормально. Балкой сорвавшейся с подъемного крана может зашибить. Поэтому - "не стой под стрелой", баклан. И высокое напряжение - опасно для жизни. Что не отменяет его использование. Множество инструментов позволяют так или иначе причинить себе (или окружающим) вред. И так было всегда. Всю историю цивилизаций. А ты чего предлагаешь? Скатить цивилизацию до детского садика, где великовозрастных дeбилyшек огораживают от всех опасностей?
>Предъявлять бензопиле что ей оказывается покалечиться можно будет только полный идиoт.Понимаешь, не все инструменты которыми могут пользоваться взрослые люди являются безопасными. Это, блин, нормально. Балкой сорвавшейся с подъемного крана может зашибить. Поэтому - "не стой под стрелой", баклан. И высокое напряжение - опасно для жизни. Что не отменяет его использование. Множество инструментов позволяют так или иначе причинить себе (или окружающим) вред. И так было всегда. Всю историю цивилизаций. А ты чего предлагаешь? Скатить цивилизацию до детского садика, где великовозрастных дeбилyшек огораживают от всех опасностей?
Всё это правильно и естественно кроме одного момента: есть инструменты лучше (проще, безопаснее, однозначнее) Си. Если для тебя это ничего не значит, то okay, в этом вся разница наших позиций.
> Всё это правильно и естественно кроме одного момента: есть инструменты лучше (проще,
> безопаснее, однозначнее) Си.Не вижу прямой замены сям. JFYI, хирург вовсе не обязан бурно радоваться замене острого скальпеля на деревянные палочки. Даже если они и безопаснее для недееспособных идиoтов, это другой инструмент с другими возможностями.
> Если для тебя это ничего не значит, то
> okay, в этом вся разница наших позиций.Да, для меня это ничего не значит. Просто потому что для системного программирования инструментов "лучше, проще, безопаснее, однозначнее" так и не появилось. Вот прямо так с конца 70-х прошлого века. Системные инструменты вообще должны акцентировать внимание отнюдь не на безопасности для недееспособных. Недееспособным нечего делать в системном программировании.
А так я готов поспорить что DJB на сях напишет безопаснее чем ты или изя на [любой ЯП по вкусу]. Такая фигня.
(глядит с прищуром) что-то ты мне подозрительно напоминаешь юзера294
>> Всё это правильно и естественно кроме одного момента: есть инструменты лучше (проще,
>> безопаснее, однозначнее) Си.
> Не вижу прямой замены сям.а прямой замены и не будет. Есть люди, что поняли как делать не надо еще в прошлом веке и спроектировали поразительно маленькие но фичастые, простые, надёжные и безопасные языки. Полный синтаксис например второго оберона не занимает и 40 предложений, инструкции ясны и однозначны, нормальная модульность, нормальное ООП, сборщик мусора по желанию (модула). Как и обобщенное программирование, нормальная многозадачность, нормальная обработка исключений.
Прямой замены нет. Но выбор на чём писать качественное и безопасное ПО есть: Oberon{2}, Modula{2,3}, Component Pascal.
> не надо еще в прошлом веке и спроектировали поразительно маленькие но
> фичастые, простые, надёжные и безопасные языки.И, главное, в системном программировании требования несколько иные. Знаешь, маленький, безопасный и скоростной ракетоплан в ангаре - может и неплохо. Но если так оказывается что под него космодромов нет и топливо нигде не найдешь - знаешь, на обычной бензиновой коптилке будет практичнее ездить в результате.
> нормальное ООП, сборщик мусора по желанию (модула). Как и обобщенное программирование,
> нормальная многозадачность, нормальная обработка исключений.И с какого рожна ты возомнил что системщикам все эти автоматические жоповытирашки делающие процессы менее предсказуемыми и более сложными вообще куда-то уперлись?
> Прямой замены нет. Но выбор на чём писать качественное и безопасное ПО
> есть: Oberon{2}, Modula{2,3}, Component Pascal.Вот вали и пиши на этом все что пожелаешь. Флаг тебе в руки и электричку навстречу. А мне на си неплохо, знаешь ли. А знаешь, хорошо когда один и тот же алгоритмический код может собраться под микроконтроллер в фонарике и суперкомпьютер. А где надо - си позволяет откалывать фокусы которые по другому разве что на ассемблере. Вот ими и пользуются. Потому что концептуальные замены - это круто, но - в сад.
> И с какого рожна ты возомнил что системщикам все эти автоматические жоповытирашки
> делающие процессы менее предсказуемыми и более сложными вообще куда-то уперлись?быдлокодерам — конечно, не надо. им же не софт написать, им чтобы все восхищались, как быдлокодеры мучались.
действительно, Oberon же не существует. и Blue Bottle aka AOS aka A2 тоже.
здесь можешь начинать любимое: «а почему они не стоят на миллионах машин? значит, ерунда!»
Однако, всякие неадекваты хотят сделать на словах мегакруто на жабе, а выходит - банальное балабольство. Да и помалкивать о недостатках жабы у фанатиков тоже принято. Да, вообще, у любых фанатиков так положено, своё некомпетентное мнение выпячивать. 2 гигабайта памяти на запуск Eclipse, а желательно больше? Извините, это всего лишь IDE, она должна быть удобной, а когда тормозит безбожно, то это элементарно неудобно. А не хавать память, как одна из нескольких виртуальных машин, на которых я тестирую и собираю софт. Хотя фанатики могут и дальше жевать свой кактус, разговаривая об изысканности их вкусов, это да. А пару лет назад разработчики напоролись очень шустро на траблы с тормозами этого самого Eclipse, отменив контроль производительности, "спецы" загадили все за пару месяцев так, что многие компоненты стали от 2 до 10 раз медленнее работать (новость на опеннете была тоже). Вот такая вот компетенция жабистов-разработчиков.
Даже в IBM делают разработки на жабе, а потом, после обкатки, конвертируют для увеличения производительности на плюсы. Такие вот дела. Универсального и по всем пунктам, устраивающих всех, языка программирования нет и не будет. Потому как всегда будут, в том числе, большое количество неосиляторов, критикующих перочинный ножик только потому что не смогли его даже открыть.
жаба - не замена Сишке. Что с тобой? Ты думаешь я о жабке?
где я написал, что жаба - замена сишке? с наркотой завязывай.
> где я написал, что жаба - замена сишке? с наркотой завязывай.а где я писал о жабке что ты мне о ней?)) давай вместе с наркотой завязывать, а то сам употребляешь, а меня отговариваешь.
Я написал, что жабу всякие энергичные фанатики пытаются воткнуть везде, но больше балабольства и махания флагами я ничего другого не вижу. Вместо этого - элементарная некомпетенция жабистов, не выходящую за рамки программ "hello world". Тут ещё недавно и паскалист рьяно махал флажком, да всякие фортранщики, работающие с массивами, не зная, как, хотя бы, данные массивов располагаются в памяти. И т.д. и т.п. Таким ущербным разве надо что-то доказывать? Пускай дальше жуют свой кактус.
> Я написал, что жабу всякие энергичные фанатики пытаются воткнуть везде, но больше
> балабольства и махания флагами я ничего другого не вижу. Вместо этого
> - элементарная некомпетенция жабистов, не выходящую за рамки программ "hello world".
> Тут ещё недавно и паскалист рьяно махал флажком, да всякие фортранщики,
> работающие с массивами, не зная, как, хотя бы, данные массивов располагаются
> в памяти. И т.д. и т.п. Таким ущербным разве надо что-то
> доказывать? Пускай дальше жуют свой кактус.Ущербность не при чем, просто привыкли к сишечке из за *nix'ов и не хотят думать о чём-то другом.
Инертность доходит до такой бесполезной суеты, как строительство костылей и вспомогательных либ, подпорок для Си, мануалов, саммитов и разнообразных FAQ'ов, вместо того чтоб взять готовый инструмент, который проектировался специально для этих целей.
0-terminated strings — это ненормально.
> 0-terminated strings — это ненормально.язык без строк, без массивов, а не их имитации - ненормально.
Взглянул на календарь.
Ненормально.
вот и я не понимаю, зачем люди на таком ублюдстве пишут.
Изя не осилил строки С/С++, теперь понятно почему он так любит Жабку.Извини, Изя, но в этот раз "минус в карму" !
П.С.: Изя, почитай о STL и открой уже для себя std::string
А подумать о том что он писал пост про то что для разработки програмки меняющей обои выбор c++/С не очень очевиден никак?Зачем в Ведроиде в части которая для массовых поделок на коленке что-то подобное С?
Потому что иначе оказывается, что на смартфоне набирается орда "массовых поделок", и в результате система еле ползёт. Если, конечно, не прилагать некие административные усилия - ну там - рейтинг тормозов сделать, например, как у мозиллы. Да учитывать его при сортировке приложений в плее - кстати, было бы полезное применение шпионской статистике. А так - в конкурентной борьбе будут выигрывать быстрописанные, но тормозные уроды.
> Потому что иначе оказывается, что на смартфоне набирается орда "массовых поделок", и
> в результате система еле ползёт.А с С++ она будет непрерывно падать. Люди-то одни и те же.
> П.С.: Изя, почитай о STL и открой уже для себя std::stringодин костыль заменили на другой.
>> П.С.: Изя, почитай о STL и открой уже для себя std::string
> один костыль заменили на другой.Сегодня опять весь вечер на манеже Арису.
В программе:
1. Разоблачения всемирно известного учёного Александра Степанова и его STL никому неизвестным анонимом-пустобрёхом с Опеннета по кличке Арису.
Арису расскажет нам как был неправ Степанов и где конкретно он наломал дров. Спешите видеть смертельные разоблачения и срывы покровов.
2. Также будет представлен новый, совершенно бескостыльный язык программирования персонально от Арису, на котором он перепишет славящийся своей надежностью TeX, в целях ещё большего повышения надежности.
давай разупарывайся, жрать столько веществ вредно для здоровья.
> давай разупарывайся, жрать столько веществ вредно для здоровья.У тебя сало упало !
> C/C++ небезопасныйЖить вобще опасно - от этого умирают...
> Может Go подгонят на её местоУже занялись
https://docs.google.com/document/d/1N3XyVkAP8nmWjASz8L_Ojjnj...
главное чтобы оракле и микрософт меньше доматывались до андроид сообщества со своими патентными претензиями!
Ну уж нет, пусть измотают его скорее.
И как они тогда с него будут бабло стричь?
дык сами исдохнут от безденежья и будет всем счастье
> дык сами исдохнут от безденежья и будет всем счастьеместо пусто не бывает.
Давно юзаю. На нексусе. Отличная скорость!
судя по тестам, на 10% быстрее
> судя по тестам, на 10% быстрееНе в скорости дело, тут какое железо не давай - все равно будет подлагивать, Тоесть работает быстро, но иногда глюки есть. В ART - работает быстро без подлагивань на норм устройствах, ну слабых будет равномерно медленно работать (хотя эпоха ARM6 закончилась).
> Давно юзаю. На нексусе. Отличная скорость!Гента считается? :)
Гента не считается. Ни с чем. Вот такая она суровая.
Тоже переключил на ART, как только обновился до 4.4. Проблем ни разу не наблюдал. Правда до этого тормозов тоже не видел, поэтому о скорости ничего говорить не буду.
Я чтото не врубился, они что, написали преобразователь скомпилированных Java-программ в нативные
Разработчики осторожно -- с переходом на ART дебаггер будет ещё больше тормозить (хотя казалось бы куда дальше).
А под nexus 7 2013 lte даже 4.4.3 ещё не выпустили, уроды!
Сколько ждать то?
Это Google смиритесь. Вон для Galaxy Nexus даже 4.4 никогда не будет.Даже огрызки свои телефоны года по 4 поддерживают, а тут 2 года и все ...
так только год прошел.
Под nexus 7 2013 wifi вышла прошивака, даже под nexus 7 2012 wifi/3g вышла. А под 2013 lte что-то тупят.
> Сколько ждать то?Откройте себе веки: http://forum.xda-developers.com/nexus-7-2013/development-lte
Я стоковый жду https://developers.google.com/android/nexus/images#razorg
Да неужели? Много же им потребовалось времени чтобы понять какой dalvit кусок кала.
> Да неужели? Много же им потребовалось времени чтобы понять какой dalvit кусок кала.От NIH-а вообще довольно сложно лечиться.
Не факт, что удачный JIT хуже корявого AOT. Тут нужно статистику посмотреть...