The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Джеймс Боттомли анализирует промахи Android при взаимодейств..."
Отправлено iZEN, 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.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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