V8 (движок JavaScript)

Поделись знанием:
Перейти к: навигация, поиск
V8 JavaScript Engine
Тип

Движок JavaScript

Разработчик

Google Inc.

Написана на

C++, JavaScript

Операционная система

Android, Microsoft Windows, Mac OS X, FreeBSD, HP webOS[1][2] и Linux

Аппаратная платформа

x86, ARM[3], MIPS[4]

Состояние

Активная разработка

Лицензия

BSD

Сайт

[code.google.com/p/v8/ ogle.com/p/v8/]

К:Википедия:Статьи без изображений (тип: не указан)

V8 — движок JavaScript с открытым программным кодом, распространяемый по лицензии BSD. Разработан датским отделением компании Google.





Особенности V8

Разработка JavaScript-движка V8 началась в датском отделении Google в городе Орхус. Ведущим разработчиком стал Ларс Бак (Lars Bak). Основными проблемами, которые пришлось решать разработчикам в движке, стали производительность и масштабируемость[5]. Первая лабораторная версия движка появилась 3 июля 2008 года[6], а уже 2 сентября была официально представлена версия 0.2.5, вошедшая в первый публичный релиз Chromium[7].

Ларс Бак считал[8], что краеугольными камнями V8 являются:

  • Компиляция исходного кода JavaScript непосредственно в собственный машинный код, минуя стадию промежуточного байт-кода.
  • Эффективная система управления памятью, приводящая к быстрому объектному выделению и маленьким паузам сборки «мусора»[9].
    • V8 приостанавливает исполнение кода во время выполнения сборки «мусора».
    • Уменьшает влияние и воздействие приостановки приложения при сборке «мусора».
    • V8 может точно определять, где находятся в памяти объекты и указатели, что позволяет избежать утечки памяти при ложной идентификации объектов в качестве указателей.
  • Введение скрытых классов и встроенных кэшей, ускоряющих доступ к свойствам и вызовы функции.

V8 исполняет JavaScript-сценарии в особых «контекстах», которые по сути являются отдельными виртуальными машинами. Правда в одном процессе может работать только одна виртуальная машина, несмотря на возможность использования нескольких потоков[10]. В Chromium это обходится мультипроцессовой архитектурой, повышающей также стабильность и безопасность, реализуя таким образом механизм «песочницы»[11]. Таким образом, несмотря на динамическую природу JavaScript, разработчикам удалось применить методы, характерные для реализации классических объектно-ориентированных языков, такие как компиляция кода «на лету», внутреннее кэширование, точный процесс сборки мусора, снэпшоттинг при создании контекстов[5][10].

Движок V8 отличается от других движков (JScript, SpiderMonkey, JavaScriptCore, Nitro) высокой производительностью[12][13][14][15][16].

Продукты, использующие V8

Браузеры

  • Chromium — веб-браузер с открытым исходным кодом, на основе которого создаются ряд браузеров, наиболее популярным из которых является Chrome — веб-браузер компании Google
  • Maxthon — веб-браузер со встроенным блокиратором рекламы, использующий два движка рендеринга: WebKit и Trident[17];
  • Браузер Android[18] — мобильный браузер, входящий в Android OS.

Операционные системы

  • Android OS — операционная система от Google, предназначенная для коммуникаторов, нетбуков и планшетов. Используется в браузере, начиная с Froyo.
  • HP webOS — операционная система от Hewlett-Packard для коммуникаторов, нетбуков и планшетов. Движок V8 используется в браузере Web.
  • Google Chrome OS — операционная система от Google на базе проекта Chromium, ориентированная на облачные сервисы. V8 является важным компонентом ОС.

См. также

Напишите отзыв о статье "V8 (движок JavaScript)"

Примечания

  1. [www.precentral.net/palm-and-hp-oscon2010-open-source-inevitable Использование V8 в webOS] (англ.)
  2. [www.computerra.ru/vision/559188/ Обзор новой версии webOS 2.0 и встроенного браузера] (рус.)
  3. [developers.google.com/v8/intro Поддержка архитектур]
  4. Официальная поддержка с версии 3.8.2
  5. 1 2 [googlerussiablog.blogspot.com/2009/12/google_24.html Ларс Бак в Санкт-Петербурге], 2009-12 (рус.)
  6. [code.google.com/p/v8/source/detail?r=2 V8 JavaScript Engine initial export]
  7. [googlecode.blogspot.com/2008/09/google-chrome-chromium-and-v8-launch.html Запуск V8, Chromium и Google Chrome], 2008-09 (англ.)
  8. [blog.chromium.org/2008/09/google-chromes-need-for-speed_02.html Обзор возможностей], 2008-09 (англ.)
  9. [developers.google.com/v8/design#garb_coll Эффективный сбор «мусора»] (англ.)
  10. 1 2 [sysoev.ru/prog/v8.html Обзор возможностей движка V8 на серверах] (рус.)
  11. [dev.chromium.org/developers/design-documents/multi-process-architecture Обзор мультипроцессорной архитектуры] (англ.)
  12. [developers.google.com/v8/design Design Elements] (англ.)
  13. [news.cnet.com/8301-17939_109-10030888-2.html Speed test: Google Chrome beats Firefox, IE, Safari] (англ.)
  14. [www.google.com/intl/ru/chrome/browser/features.html#speed Быстрый запуск веб-приложений] (рус.)
  15. [www.webmonkey.com/2010/09/mozilla-asks-are-we-fast-yet/ Mozilla сравнивает производительность движков] (англ.)
  16. Проверить производительность движка JavaScript, используемого браузером, можно запустив тесты [v8.googlecode.com/svn/data/benchmarks/v6/run.html V8 Benchmark Suite], [www.webkit.org/perf/sunspider-0.9.1/sunspider-0.9.1/driver.html SunSpider], [krakenbenchmark.mozilla.org/ Kraken]
  17. www.maxthon.com/blog/maxthon-3-what-you-always-wanted-to-know/ We switched to Maxthon-modified version of Google's open source V8 engine.
  18. [www.gadgetsnreviews.com/here-gets-launched-the-android-2-2-froyo-update-for-nexus-one-‘officially’-by-google/2397.html Включение движка V8 в мобильный браузер Froyo](недоступная ссылка с 23-11-2013 (3806 дней))

Ссылки

  • [code.google.com/p/v8/ Официальный сайт проекта]  (англ.)
  • [developers.google.com/v8/intro Документация Google V8]  (англ.)
  • [v8.googlecode.com/svn/data/benchmarks/v6/run.html Тестирование производительности JavaScript-движка с помощью V8 Benchmark Suite]  (англ.)
  • [mansio.ru/benchmark Комплексное тестирование с помощью SunSpider, Kraken и V8 Benchmark производительности JavaScript-движков]
  • [channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Erik-Meijer-and-Lars-Bak-Inside-V8-A-Javascript-Virtual-Machine/ V8 — Виртуальная машина JavaScript]  (англ.)

Отрывок, характеризующий V8 (движок JavaScript)

– Люблю, что позаботился, люблю, останешься доволен…
И он, похлопав Берга по плечу, встал, желая прекратить разговор. Но Берг, приятно улыбаясь, объяснил, что, ежели он не будет знать верно, что будет дано за Верой, и не получит вперед хотя части того, что назначено ей, то он принужден будет отказаться.
– Потому что рассудите, граф, ежели бы я теперь позволил себе жениться, не имея определенных средств для поддержания своей жены, я поступил бы подло…
Разговор кончился тем, что граф, желая быть великодушным и не подвергаться новым просьбам, сказал, что он выдает вексель в 80 тысяч. Берг кротко улыбнулся, поцеловал графа в плечо и сказал, что он очень благодарен, но никак не может теперь устроиться в новой жизни, не получив чистыми деньгами 30 тысяч. – Хотя бы 20 тысяч, граф, – прибавил он; – а вексель тогда только в 60 тысяч.
– Да, да, хорошо, – скороговоркой заговорил граф, – только уж извини, дружок, 20 тысяч я дам, а вексель кроме того на 80 тысяч дам. Так то, поцелуй меня.


Наташе было 16 лет, и был 1809 год, тот самый, до которого она четыре года тому назад по пальцам считала с Борисом после того, как она с ним поцеловалась. С тех пор она ни разу не видала Бориса. Перед Соней и с матерью, когда разговор заходил о Борисе, она совершенно свободно говорила, как о деле решенном, что всё, что было прежде, – было ребячество, про которое не стоило и говорить, и которое давно было забыто. Но в самой тайной глубине ее души, вопрос о том, было ли обязательство к Борису шуткой или важным, связывающим обещанием, мучил ее.
С самых тех пор, как Борис в 1805 году из Москвы уехал в армию, он не видался с Ростовыми. Несколько раз он бывал в Москве, проезжал недалеко от Отрадного, но ни разу не был у Ростовых.
Наташе приходило иногда к голову, что он не хотел видеть ее, и эти догадки ее подтверждались тем грустным тоном, которым говаривали о нем старшие:
– В нынешнем веке не помнят старых друзей, – говорила графиня вслед за упоминанием о Борисе.
Анна Михайловна, в последнее время реже бывавшая у Ростовых, тоже держала себя как то особенно достойно, и всякий раз восторженно и благодарно говорила о достоинствах своего сына и о блестящей карьере, на которой он находился. Когда Ростовы приехали в Петербург, Борис приехал к ним с визитом.
Он ехал к ним не без волнения. Воспоминание о Наташе было самым поэтическим воспоминанием Бориса. Но вместе с тем он ехал с твердым намерением ясно дать почувствовать и ей, и родным ее, что детские отношения между ним и Наташей не могут быть обязательством ни для нее, ни для него. У него было блестящее положение в обществе, благодаря интимности с графиней Безуховой, блестящее положение на службе, благодаря покровительству важного лица, доверием которого он вполне пользовался, и у него были зарождающиеся планы женитьбы на одной из самых богатых невест Петербурга, которые очень легко могли осуществиться. Когда Борис вошел в гостиную Ростовых, Наташа была в своей комнате. Узнав о его приезде, она раскрасневшись почти вбежала в гостиную, сияя более чем ласковой улыбкой.
Борис помнил ту Наташу в коротеньком платье, с черными, блестящими из под локон глазами и с отчаянным, детским смехом, которую он знал 4 года тому назад, и потому, когда вошла совсем другая Наташа, он смутился, и лицо его выразило восторженное удивление. Это выражение его лица обрадовало Наташу.
– Что, узнаешь свою маленькую приятельницу шалунью? – сказала графиня. Борис поцеловал руку Наташи и сказал, что он удивлен происшедшей в ней переменой.
– Как вы похорошели!
«Еще бы!», отвечали смеющиеся глаза Наташи.
– А папа постарел? – спросила она. Наташа села и, не вступая в разговор Бориса с графиней, молча рассматривала своего детского жениха до малейших подробностей. Он чувствовал на себе тяжесть этого упорного, ласкового взгляда и изредка взглядывал на нее.
Мундир, шпоры, галстук, прическа Бориса, всё это было самое модное и сomme il faut [вполне порядочно]. Это сейчас заметила Наташа. Он сидел немножко боком на кресле подле графини, поправляя правой рукой чистейшую, облитую перчатку на левой, говорил с особенным, утонченным поджатием губ об увеселениях высшего петербургского света и с кроткой насмешливостью вспоминал о прежних московских временах и московских знакомых. Не нечаянно, как это чувствовала Наташа, он упомянул, называя высшую аристократию, о бале посланника, на котором он был, о приглашениях к NN и к SS.
Наташа сидела всё время молча, исподлобья глядя на него. Взгляд этот всё больше и больше, и беспокоил, и смущал Бориса. Он чаще оглядывался на Наташу и прерывался в рассказах. Он просидел не больше 10 минут и встал, раскланиваясь. Всё те же любопытные, вызывающие и несколько насмешливые глаза смотрели на него. После первого своего посещения, Борис сказал себе, что Наташа для него точно так же привлекательна, как и прежде, но что он не должен отдаваться этому чувству, потому что женитьба на ней – девушке почти без состояния, – была бы гибелью его карьеры, а возобновление прежних отношений без цели женитьбы было бы неблагородным поступком. Борис решил сам с собою избегать встреч с Наташей, нo, несмотря на это решение, приехал через несколько дней и стал ездить часто и целые дни проводить у Ростовых. Ему представлялось, что ему необходимо было объясниться с Наташей, сказать ей, что всё старое должно быть забыто, что, несмотря на всё… она не может быть его женой, что у него нет состояния, и ее никогда не отдадут за него. Но ему всё не удавалось и неловко было приступить к этому объяснению. С каждым днем он более и более запутывался. Наташа, по замечанию матери и Сони, казалась по старому влюбленной в Бориса. Она пела ему его любимые песни, показывала ему свой альбом, заставляла его писать в него, не позволяла поминать ему о старом, давая понимать, как прекрасно было новое; и каждый день он уезжал в тумане, не сказав того, что намерен был сказать, сам не зная, что он делал и для чего он приезжал, и чем это кончится. Борис перестал бывать у Элен, ежедневно получал укоризненные записки от нее и всё таки целые дни проводил у Ростовых.