Chrome V8

Bách khoa toàn thư mở Wikipedia
V8
Phát triển bởiThe Chromium Project
Phát hành lần đầu2 tháng 9 năm 2008; 15 năm trước (2008-09-02)
Phiên bản ổn định
6.7[1] / 4 tháng 5 năm 2018; 5 năm trước (2018-05-04)
Kho mã nguồn
Viết bằngC++,[2] JavaScript[2]
Nền tảngIA-32, x86-64, ARM, MIPS,[3] PowerPC, IBM s390
Thể loạiJavaScript engine
Giấy phépBSD[4]
Websitedevelopers.google.com/v8

Chrome V8, hay đơn giản là V8, là một JavaScript engine mã nguồn mở phát triển bởi The Chromium Project cho trình duyệt web Google ChromeChromium.[5] Người sáng lập dự án là Lars Bak.[6] Phiên bản đầu tiên của V8 engine được phát hành cùng lúc với phiên bản đầu tiên của Chrome: 2/9/2008. V8 cũng được dùng trong Couchbase, MongoDBNode.js (phía máy chủ).

V8 biên dịch JavaScript trực tiếp sang mã máy trước khi thực thi, thay vì các kỹ thuật truyền thống khác như giải mã thông dịch bytecode hoặc biên dịch toàn bộ chương trình sang mã máy và thực thi nó từ một hệ thống tập tin. Mã đã biên dịch được tối ưu hóa bổ sung (và được tối ưu hóa lại) một cách linh động trong thời gian thực thi, dựa trên các chẩn đoán của hồ sơ thực thi của mã. Các kỹ thuật tối ưu hóa được sử dụng bao gồm nội tuyến, xóa bỏ các thuộc tính runtime nặng và bộ nhớ đệm nội tuyến. Bộ gom rác là một bộ thu tăng dần thế hệ.[7]

V8 có thể biên dịch cho các kiến trúc x86, ARM hoặc MIPS ở cả hai phiên bản 32 và 64-bit; cũng như nó đã được port sang cho PowerPC[8]IBM s390[9][10] để dùng trên các máy chủ.[3][11]

Lịch sử[sửa | sửa mã nguồn]

Assembler của V8 dựa trên Strongtalk assembler.[12] Ngày 7/12/2010, một nền tảng biên dịch mới mang tên Crankshaft được phát hành, với những cải tiến về tốc độ.[13] Từ phiên bản Chrome 41 năm 2015, dự án TurboFan đã được thêm để cho phép tốc độ nhanh hơn, ví dụ cho asm.js.[14]

Năm 2016, trình phiên dịch Ignition được thêm vào V8 với mục tiêu thiết kế là giảm thiểu việc sử dụng bộ nhớ nhỏ trên điện thoại Android so với TurboFan và Crankshaft.[15]

Năm 2017, V8 được phân phối cùng trình biên dịch pipeline mới, bao gồm Ignition (trình thông dịch) và TurboFan (trình biên dịch tối ưu hóa). Bắt đầu với phiên bản V8 5.9, Full-codegen và Crankshaft không còn được dùng trông V8 để thực thi JavaScript, vì nhóm tin rằng chúng không còn có thể bắt kịp với các tính năng ngôn ngữ JavaScript mới và tối ưu hóa các tính năng đó.[16]

Sử dụng[sửa | sửa mã nguồn]

V8 được dự định sẽ được sử dụng cả trong trình duyệt và tích hợp vào các dự án độc lập. V8 được sử dụng trong các phần mềm sau:

  • Trình duyệt Google Chrome, Chromium, OperaVivaldi
  • Cơ sở dữ liệu Couchbase
  • Node.js (môi trường chạy mã) [17]
  • Framework phần mềm Electron, thành phần cơ bản cho trình soạn thảo Atom và Visual Studio Code
  • NativeScript, framework nguồn mở để xây dựng các ứng dụng di động bằng JavaScript.[18]
  • MarkLogic Server, một cơ sở dữ liệu hướng tài liệu.

Xem thêm[sửa | sửa mã nguồn]

Chú thích[sửa | sửa mã nguồn]

  1. ^ “V8 Release v6.7”. V8 Project.
  2. ^ a b “V8 JavaScript Engine”. Google Code.
  3. ^ a b “Introduction - Chrome V8”. Google Developers.
  4. ^ “v8/LICENSE.v8 at master”. Github.
  5. ^ Lenssen, Philipp (ngày 1 tháng 9 năm 2008). “Google on Google Chrome - comic book”. Google Blogoscoped. Google. Truy cập ngày 17 tháng 8 năm 2010.
  6. ^ Minto, Rob (ngày 27 tháng 3 năm 2009). “The genius behind Google's web browser”. Financial Times. Truy cập ngày 17 tháng 8 năm 2010.
  7. ^ “A game changer for interactive performance”. Chromium Blog. Google. Truy cập ngày 1 tháng 5 năm 2012.
  8. ^ https://github.com/andrewlow/v8ppc
  9. ^ https://github.com/andrewlow/v8z
  10. ^ “Bản sao đã lưu trữ”. Bản gốc lưu trữ ngày 4 tháng 9 năm 2018. Truy cập ngày 4 tháng 9 năm 2018.
  11. ^ “V8 Changelog v3.8.2”. Google. Bản gốc lưu trữ ngày 22 tháng 10 năm 2012. Truy cập ngày 23 tháng 10 năm 2012.
  12. ^ “V8 JavaScript Engine: License”. Google Code. Google. Bản gốc lưu trữ ngày 22 tháng 7 năm 2010. Truy cập ngày 17 tháng 8 năm 2010.
  13. ^ “A New Crankshaft for V8”. Chromium Blog. Google. ngày 7 tháng 12 năm 2010. Truy cập ngày 22 tháng 4 năm 2011.
  14. ^ “Revving up JavaScript performance with TurboFan”. ngày 7 tháng 7 năm 2015. Truy cập ngày 5 tháng 3 năm 2016.
  15. ^ “BlinkOn 6 Day 1 Talk 2: Ignition - an interpreter for V8”. ngày 26 tháng 6 năm 2016. Truy cập ngày 2 tháng 9 năm 2016.
  16. ^ “Launching Ignition and TurboFan”. ngày 16 tháng 5 năm 2017. Truy cập ngày 13 tháng 7 năm 2017.
  17. ^ Jolie O'Dell (ngày 10 tháng 3 năm 2011). “Why Everyone Is Talking About Node”. Mashable.
  18. ^ “NativeScript Android Runtime Overview”. Bản gốc lưu trữ ngày 13 tháng 6 năm 2018. Truy cập ngày 4 tháng 9 năm 2018.

Liên kết ngoài[sửa | sửa mã nguồn]