Оберон-клуб «ВЄДАsoft» https://zx.oberon.org/forum/ |
|
Google «изобрёл» и воплощает в новой версии Android'а динамическую кодогенерацию https://zx.oberon.org/forum/viewtopic.php?f=3&t=147 |
Страница 1 из 2 |
Автор: | Zorko [ 21 ноя 2013, 09:03 ] |
Заголовок сообщения: | Google «изобрёл» и воплощает в новой версии Android'а динамическую кодогенерацию |
Более десяти лет назад известную в среде оберонщиков и в академических кругах, с чем я нас, господа, и поздравляю. Ещё одна здравая идея наконец-то понята мэйнстримом (и будет им использована в светлых целях наживы. ), и хоть бы не испохабили (Java — плохой Оберон). А мне это особенно приятно, т.к. я никогда не был сторонником виртуальных машин и JIT-компиляции и удивлялся ажиотажу вокруг всего этого. http://habrahabr.ru/post/201346/ Если кто не в курсе, об этом можно прочесть в работах Михаэля Франца. |
Автор: | Jordan [ 21 ноя 2013, 10:50 ] |
Заголовок сообщения: | Re: Google «изобрёл» и воплощает в новой версии Android'а динамическую кодогенерацию |
Опять костыли. Не проще ли задействовать opengl, то есть аппаратное ускорение графики. Написать грамотно, то есть не анимировать, не отрисовывать, то, что не видно пользователю. Под андроид перенесли игру Call of Duty, а у них видите ли кнопки тормозят. Доколе! |
Автор: | geniepro [ 21 ноя 2013, 11:06 ] |
Заголовок сообщения: | Re: Google «изобрёл» и воплощает в новой версии Android'а динамическую кодогенерацию |
Вообще-то Google в своей новой версии Андроида собирается ввести статическую кодогенерацию (ART) вместо текущей динамической (Dalvik). Динамическая кодогенерация тормозная, в отличие от статической. Этот Google ART по сути является аналогом утилиты ngen.exe из майкрософтского .NET Framework, которому уже больше 10 лет... |
Автор: | geniepro [ 21 ноя 2013, 11:08 ] |
Заголовок сообщения: | Re: Google «изобрёл» и воплощает в новой версии Android'а динамическую кодогенерацию |
Jordan писал(а): Опять костыли. Не проще ли задействовать opengl, то есть аппаратное ускорение графики. Написать грамотно, то есть не анимировать, не отрисовывать, то, что не видно пользователю. Под андроид перенесли игру Call of Duty, а у них видите ли кнопки тормозят. Доколе! При чём тут OpenGL-то? о_О Тормоза возникают не из-за прорисовки, а из-за генерации кода при запуске программ... |
Автор: | Jordan [ 21 ноя 2013, 16:18 ] |
Заголовок сообщения: | Re: Google «изобрёл» и воплощает в новой версии Android'а динамическую кодогенерацию |
geniepro писал(а): Jordan писал(а): Опять костыли. Не проще ли задействовать opengl, то есть аппаратное ускорение графики. Написать грамотно, то есть не анимировать, не отрисовывать, то, что не видно пользователю. Под андроид перенесли игру Call of Duty, а у них видите ли кнопки тормозят. Доколе! При чём тут OpenGL-то? о_О Тормоза возникают не из-за прорисовки, а из-за генерации кода при запуске программ... Поторопился с ответом. Прочитал статью наискось. |
Автор: | Zorko [ 21 ноя 2013, 19:33 ] |
Заголовок сообщения: | Re: Google «изобрёл» и воплощает в новой версии Android'а динамическую кодогенерацию |
geniepro писал(а): Вообще-то Google в своей новой версии Андроида собирается ввести статическую кодогенерацию (ART) вместо текущей динамической (Dalvik). Почитай про кодогенерирующие загрузчики. У Франца под термином "динамическая кодогенерация" понимается то, что ты почему-то называешь статической.
Динамическая кодогенерация тормозная, в отличие от статической. |
Автор: | geniepro [ 21 ноя 2013, 19:59 ] |
Заголовок сообщения: | Re: Google «изобрёл» и воплощает в новой версии Android'а динамическую кодогенерацию |
Zorko писал(а): geniepro писал(а): Вообще-то Google в своей новой версии Андроида собирается ввести статическую кодогенерацию (ART) вместо текущей динамической (Dalvik). Динамическая кодогенерация тормозная, в отличие от статической. Почитай про кодогенерирующие загрузчики. У Франца под термином "динамическая кодогенерация" понимается то, что ты почему-то называешь статической. Да читал я про кодогенерацию Франца -- это типичный JIT-транслятор, который в андроиде есть давно -- Dalvik. А этот ART -- это уже не JIT-транслятор, который динамически генерирует машинный код при старте программы, а статический компилятор AOT, который генерирует машинный код при установке программы (в андроиде при установке, в .NET в любой момент по команде пользователя). |
Автор: | Zorko [ 21 ноя 2013, 20:11 ] |
Заголовок сообщения: | Re: Google «изобрёл» и воплощает в новой версии Android'а динамическую кодогенерацию |
Я не согласен. JIT — это поверх виртуальной машины фрагменты байт-кода на лету заменяются на машинные команды. Это JVM и Dalvik. А у Франца — в момент загрузки программы (с диска или сети в память) плоский бинарник (slim binary) на лету транслируется в машинный код. В момент загрузки, понимаешь? А не исполнения. Видимо, ты невнимательно читал. |
Автор: | geniepro [ 21 ноя 2013, 20:57 ] |
Заголовок сообщения: | Re: Google «изобрёл» и воплощает в новой версии Android'а динамическую кодогенерацию |
Zorko писал(а): Я не согласен. JIT — это поверх виртуальной машины фрагменты байт-кода на лету заменяются на машинные команды. Это JVM и Dalvik. А у Франца — в момент загрузки программы (с диска или сети в память) плоский бинарник (slim binary) на лету транслируется в машинный код. В момент загрузки, понимаешь? А не исполнения. Видимо, ты невнимательно читал. Ну, учитывая что у Франца код загружался через веб-браузер, транслировался в маш-код в оперативной памяти (а не сохранялся на диск), выполнялся, а затем удалялся -- то отличие от JIT-а незначительное. |
Автор: | Zorko [ 22 ноя 2013, 08:25 ] |
Заголовок сообщения: | Re: Google «изобрёл» и воплощает в новой версии Android'а динамическую кодогенерацию |
Не-а, отличие всё-таки принципиальное. Мне кажется, Францем предложен более совершенный способ трансляции, который решает, в основном, все проблемы, присущие VM. Перечислю их вкратце.
Никак не могу углубленно прокомментировать это, но у меня подход с VM вызвал отторжение с того самого дня, как я о нём узнал. И нынче приемлю их только в эмуляторах других платформ. Там это неизбежность. А вот подход Франца сразу же поразил в плане совершенства. И я рассказывал о нём мэйнстримщикам, самые умные из которых сказали: "ну подождём, что из этого выйдет". Не будем увязать в терминологии: "статическая" или "динамическая" кодогенерация достигнута у Франца, но, похоже, что и такая, и такая, ибо в фазе "статической" (в твоей терминологии) кодогенерирующий загрузчик порождает натив из плоского бинарника в момент загрузки, и не нужно уводить нас в сторону тем, что, дескать, слим берётся не из файла. Неважно откуда. Хоть из сети. А в "динамической" (в твоей терминологии) фазе дооптимизация достижима и на лету (а вот это уже способ, реализованный в JIT-компиляторах, но серьёзно облагороженный Францем, что хорошо описано в статьях по ссылкам выше). И никакого тяжёлого наследия в виде VM, которые несомненно уйдут в прошлое, как когда-то пи-код, с развитием подхода кодогенерирующих загрузчиков. |
Страница 1 из 2 | Часовой пояс: UTC + 2 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |