The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Джеймс Боттомли анализирует промахи Android при взаимодейств..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "Джеймс Боттомли анализирует промахи Android при взаимодейств..." +/
Сообщение от iZEN (ok), 21-Окт-11, 01:37 
>> Ага. Для этого придуман JIT, чтобы хомячки не пользовались "ручником" GCC и make.
> JIT - та же компиляция, только при запуске и каждый раз заново.
> Нафига?

Потому что JIT'ится не весь код, а только та часть, которая затребована для выполнения в конкретный момент времени. Это сокращает накладные расходы процессорного времени на полную перекомпиляцию обновившегося ПО, а в случае с Java изначально предполагалось, что ПО будет обновляться достаточно часто (апплеты  с сервера загружаются же ж). А теперь так оно и вышло, только вместо апплетов продвигается модульность приложений на уровне отдельных JAR (сначала EJB с EAR, WAR на сервере, потом OSGi и там, и там и т.д.) и непрерывная интеграция-развёртывание ПО в энтерпрайзной инфраструктуре.

C++ приложения просто не угонятся за непрерывным обновлением: только что перекомпилировали Firefox 7.0, как уже пришло обновление до Firefox 7.0.1 — использовать не успеваем, время тратим только на обновления и т.д., в таком же духе. :))

> Один раз скомпилировать и положить в репозиторий нельзя?

Посмотрите на .NET. Там это реализовано, но накой — сами не знают.
Ещё идиотский каскадный стек фреймворков: 2.0/3.0/3.5/4.0, каждый из которых тянет собственные дополнения (некоторые не устанавливаются). Такая система окончательно запутывает пользователя вопросом "Накой столько фреймворков .NET на Windows? Почему нельзя обойтись одним, последней версии?"

> Почти во всех дистрибутивах так делается.

На FreeBSD при обновлении ПО необходимо выполнить полную перекомпиляцию обновлённой программы, а в некоторых случаях и всего ПО от неё зависящего. Для Java такое делать не нужно.

> Если очень хочется отложенной компиляции, можно выполнять ее один раз перед _первым запуском_ на автомате, а в дальнейшем стартовать уже скомпиленное - почему так не делается в JVM?

Разработчики JVM так решили. Кстати, есть AOT JVM, которые выполняют компиляцию байткода в нативный код процессора непосредственно на этапе его загрузки. Такие JVM обычно установлены в мобильных телефонах. ;)

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

В телефонах ни разу не получал OutOfMemoryError на запущенных приложениях. Может мне просто везло?
На десктопе тоже надо специально ухитриться написать приложение на Java, которое "зашкалит" потребление памяти и не даст другим приложениям спокойно работать.

>> Как раз-таки байткод доступен, подписан, верифицирован и распространяется в качестве приложения
> Подписать можно что угодно, не только байткод. Дебиановские пакеты вон подписываются, и ничего

Подучите теоретическую часть про PKI.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Джеймс Боттомли анализирует промахи Android при взаимодейств..., opennews, 17-Окт-11, 19:47  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру