В Opera Software решили начать разработку Carakan осенью 2008 года — как раз тогда вышла первая версия Google Chrome. Не исключено, что именно впечатляющая скорость V8 подтолкнула авторов других браузеров к тому, чтобы поучаствовать в борьбе за ускорение JavaScript. Эта тенденция как нельзя более выгодна для авторов веб-приложений — ведь чем быстрее работает JavaScript, тем более сложные программы они могут создавать.
Об особенностях нового интерпретатора Javascript «Компьютерре-Онлайн» рассказал Йенс Линдстрём (Jens Lindstrцm), ведущий разработчик Carakan.
— Как шла разработка Carakan?
— Движок Carakan создан небольшой командой инженеров, которые до этого совместно разрабатывали различные компоненты браузера Opera, в том числе движок ECMAScript. Команда насчитывала от трёх до пяти разработчиков, которые работали над проектом всё время, и примерно столько же инженеров. У всех у них за плечами был огромный опыт создания JavaScript-движков, поэтому у нас не было необходимости привлекать кого-то извне.
— Как устроен JIT-компилятор Javascript, который разработали в Opera Software?
— JIT-компилятор ядра Carakan транслирует все ECMAScript-функции в машинный код. Однако не весь код, а только его пиковые точки — то есть самые часто вызываемые и долго исполняемые функции. Перед тем, как обнаружить эти пиковые точки и активировать JIT-компилятор, Carakan запускает скрипты в кроссплатформенном бинарном движке, а сам в это время анализирует запущенный код, чтобы JIT-компилятор смог собрать его оптимизированную версию.
— Чем Carakan отличается от V8 и Tracemonkey?
JIT-компилятор Tracemonkey в чём-то похож на Carakan: в том, что он генерирует машинный код для обнаруженных пиковых точек, и в том, что использует бинарный интерпретатор для сбора информации, необходимой для JIT. С другой стороны, в Tracemonkey используется совсем другой подход — как для определения тех участков кода, которые должны быть оптимизированы, так и для непосредственной оптимизации. Что касается движка V8, то я не очень хорошо с ним знаком, чтобы авторитетно говорить об отличиях и сходстве.
— Подходит ли Carakan для использования на мобильных устройствах?
— Пока JIT-компилятор поддерживает только процессоры x86, но изначально разрабатывался для портирования на процессоры других архитектур. Например, если генерируемый код независим от кода, созданного для фактически используемого процессора, то применяется распределитель регистров. Для этого нужно только знать основные характеристики, такие как количество доступных регистров.
— Тестировали ли его совместимость с существующими веб-приложениями?
— Да, разумеется. Команда, работающая над Carakan, включала нескольких опытных инженеров, которые работали не только над разработкой тестов на соответствие спецификациям ECMAScript, но и тестированием на совместимость со многими веб-приложениями, а также изучением возможных проблем, выявленных в ходе такого тестирования. Большинство тестов были сделаны с включённым JIT-компилятором. С тех пор это режим тестирования по умолчанию.
Своя игра
Кафедра Ваннаха: Купить корабль
Ваннах Михаил
Мышление людей в постиндустриальном обществе просто удивительно. Неважные результаты выступлений атлетов на олимпиаде раздуваются чуть ли не до размеров национального бедствия, вызывают суету властей, сладострастно смакуются оппозицией, хотя на жизнь страны никакого влияния не оказывают. Спортсмены из Марафона с донесениями давно не бегают, если служат — то в спортротах. Времена отечественной ОМСБОН, времена германского боксера Шмелинга, отобравшего первенство у американских негров и парашютировавшегося в 1941 году на Крит, давно прошли. Борьба идет за награды, то бишь, денежки — именно они назывались атлоном у эллинов, а те, кто их стяжает — атлетами, в противоположность бескорыстным спортсменам-аскетам…
А вот, к сожалению, действительно неважная, и затрагивающая каждого гражданина России новость — по данным доклада Стокгольмского международного института мира наша страна за минувшее пятилетие, 2005–2009 гг., опустилась на второе место в мире по экспорту вооружений, удерживая 24 % этого рынка. На первом месте — США, 30 %. В предыдущее же пятилетие 2001–2005 гг. наша доля составляла 31 %, а у янки были те же 30 %. И даже то, что объём рынка возрос на 22 % в стоимостных показателях, — а значит, в деньгах объёмы не упали — не может скрывать беспокойства. Ведь оружие — единственный высокотехнологический товар, который у нас конкурентоспособен. И больше, утратив тут конкурентоспособность, мы через какое-то время лишимся доходов от экспорта сырья… В чём же дело?
Удобнее всего посмотреть на это на примере вызывающей большой общественный интерес сделки — возможной покупки Россией французских вертолетоносцев класса Mistral. Хотя всякие мелочи, типа тепловизоров, раций и микроболометрических матриц для нужд наших Вооруженных Сил закупаются, покупка боевого корабля производит шоковое впечатление. Ведь сама же Россия дорабатывает для Индии авианосец проекта 1143.4, бывший «Адмирал Горшков». Это — машина стандартным водоизмещением 44720 тонн, солидным оборонительным вооружением, способная нести не только вертолеты, но и истребители-бомбардировщики МиГ-29К. Ну а Mistral — десантный корабль-док. Стандартное водоизмещение — 16500 тонн. Оборонительное вооружение не заслуживает доброго слова, его наверняка придется менять на отечественные Кортики или нечто подобное. Возможность работы в далёких морях, спуская вдали от берега из затапливаемой цистерны десантные катера, для нас в ближайшее время не очень важна — дай Бог своё удержать в руках. Почему же этот корабль так актуален для нашего флота?
Давайте предположим, что этот корабль привлекает наших флотоводцев наличием полётной палубы. На которую можно будет посадить отечественные вертолеты, и десантные, и ударные. Дело в том, что у современных флотов поразительно мало средств борьбы с боевой техникой на берегу. Если во Второй Мировой, у Мысхако, у Омаха-бич высаживающуюся пехоту выручал огонь эсминцев, то ныне это трюк не пройдёт. Танки конца Второй Мировой имели орудия 75–89 мм (наш ИС-2 со 122 мм был исключением). А пушки эсминцев, при превосходной баллистике, от 119 до 130, порой до 150 мм. Но сейчас то — у танков 120–125 мм, а на эсминце, скажем отечественного проекта 956, по прежнему 130 мм орудия. Конечно, более современные, но всё равно — артиллерийская дуэль такого корабля, водоизмещением с американский крейсер, с ракетами Москит, способными отправить на дно авианосец, со взводом танков немыслима. Слишком большая, слишком слабо защищённая, слишком дорогая цель — такой корабль. А танк — машина маневренная, компактная, укрытая бронёй как у линкоров Второй мировой. И, скажем, затянись война в августе 2008 года, могло получиться, что Черноморскому Флоту было бы нечем жечь грузинские танки. А танк на берегу способен крайне затруднить действия десантных сил… А ударов с моря могут потребовать нужды военного искусства. И поэтому прежде всего мирное население прибрежных территорий Грузии должно быть заинтересовано в том, что бы в Российском флоте был корабль, взлетев с которого эскадрилья ударных вертолётов могла бы ПТУРами аккуратненько сжечь танки на берегу (экипаж которых мог бы заблаговременно сбежать и укрыться в винном погребе, совместив приятное с полезным), вместо применения (не к ночи будь помянуто) ракет со спецснаряжением или просто обстрела по площадям. Корабль, во время боевых действий укрытый горизонтом. Полетная палуба посреди моря. Вероятно, именно такое применение вертолетоносцев имел в виду главком ВМС адмирал В.С.Высоцкий.