几种JS 引擎介绍(不同浏览器有不同的引擎)

JavaScript的起源?不同的JavaScript和引擎?JS版本发展史? 1995年,JavaScript诞生了。不得不提到它的标准ECMAScript, 它是一个语言标准,而非具体的语言。JavaScript除了名字有”Java”, 其它和Java没任何关系。Netscape为推广自家的LiveScript,命名中包含当时最流行的编程语言Java来蹭蹭热度。Netscape公司有些人可能不熟悉, 它就是早期被IE做浏览器对抗后来逐渐消亡一家公司。 阅读详情

转自:http://www.cnblogs.com/gdutbean/archive/2012/02/21/2362003.html

JS 各种引擎介绍

http://www.oschina.net/project/tag/296/javascript-engine

不同浏览器有不同的JS引擎:

WebKit , Safari浏览器 ->SquirrelFish Extreme,

Firefox àTraceMonkey引擎

Google Chrome àV8引擎,(C++)

Opera -> Carakan

Mozilla ->SpiderMonkey(C语言)

Mozilla à Rhino( Java)

Mozilla ->JaegerMonkey

SEE (Simple ECMAScript Engine) C语言开发的轻量级的 ECMAScript (JavaScript) 解析器和实时运行环境

(1)javascript 解析引擎 V8(C++)

http://www.oschina.net/p/v8

V8 是 Google 发布的开源 JavaScript 引擎,采用 C++ 编写,在 Google 的 Chrome 浏览器中被使用。V8 引擎可以独立运行,也可以用来嵌入到 C++ 应用程序中执行。\

(2)javascript 脚本引擎 SpiderMonkey (c语言)

http://www.oschina.net/p/spidermonkey

SpiderMonkey是Mozilla项目的一部分,是一个用C语言实现的JavaScript脚本引擎,另外还有一个叫做Rhino的Java版 本。

为了在SpiderMonkey中运行JavaScript代码,应用程序必须有三个要素:JSRuntime,JSContext和全局对象。
运行时环境

JSRuntime,为其中的JavaScript变量、对象、脚本和应用程序中使用的上下文分配空间。每个JSContext和脚本中的每个对象都生活在一个 JSRuntime中。他们不能转移到其他运行时上或在与其它运行时共享。一般来说大多数应用程序只需要一个运行时环境。
上下文

JSContext,就像是一台小机器,它涉及JavaScript代码和对象的很多东西。它可以编译和执行脚本、获取和设置对象属性、调用 JavaScript函数、一种类型转换为另一种JavaScript数据、创建对象,等等。几乎所有JSAPI函数都要一个JSContext*作为其第一个参数,就像<stdio.h>中的大多数函数都需要FILE*一样.
全局对象

全局对象包含所有可以在JavaScript代码中使用的类、函数和变量。

当JavaScript代码要做一些事时,比如window.open("http://www.mozilla.org/"),实际上它是在访问一个全局属性(全局对象的属性),在这里是window。

脚本能看到的全局属性完全由应用程序控制。应用程序首先创建一个对象并加入JavaScript标准类,如Array和Object。然后加入任何程序想加入的自定义的类、函数和变量(象这里的window)。应用程序每次运行js脚本(例如使用JS_EvaluateScript)时提供了该脚本使用的全局对象。至于脚本,它也可以创建自己全局函数和变量。所有的这些函数、类和变量都作为属性存储在全局对象中。

(3)JS 解析器 rhino(Java)

http://www.oschina.net/p/rhino

Rhino是用纯Java写成的JavaScript的开放源代码实现。它最常被用于嵌入Java应用程序,以便为终端用户提供脚本的能力。

(4)JavaScript 解析引擎 Simple ECMAScript Engine(C语言)

http://www.oschina.net/p/SEE

SEE(Simple ECMAScript Engine) 是一个用C语言开发的轻量级的 ECMAScript (JavaScript) 解析器和实时运行环境。支持ECMAScript Edition 3, JavaScript 1.5 。

(5) JavaScript引擎 SquirrelFish Extreme

http://www.oschina.net/p/squirrelfish+extreme

几周前 Google Chrome 发布之后,因其创新的 UI 以及出色的 JavaScript 执行效率而备受赞誉。最近,作为 Safari 与 Chrome 浏览器内核的 WebKit 发布了一个新 JavaScript 引擎,SquirrelFish Extreme,经过测试,该引擎的在执行速度上明显超过 Chrome 的 V8。下图是性能的比较

(6) JavaScript引擎 Carakan

http://www.oschina.net/p/carakan

Opera全新JS引擎Carakan,目前数度是其他已存在JavaScript引擎(基于SunSpider)的2.5倍。其在转化为本地机器代码时专门针对正则表达式做了优化,有意思的是,Chrome浏览器也刚刚宣布了此点。

Carakan引擎的三个显著新特性:

1.基于寄存器的字节码:之前的引擎“ECMAScript”使用的是基于堆栈字节码指令集,这种基于对堆栈存取的方法对于生成字节码是比较简单的。

在新的引擎里,我们采用了基于寄存器的字节码指令集,这种方式采用了固定大小的寄存器,每次操作都可以访问任意的寄存器,更少的指令被执行并且不会拷贝大量的数据。

2.本地代码生成:我们将整个或部分“ECMAScript”引擎编译到本地代码中以达到更快的执行速度。

3.自动对象分类:在新的引擎中每个对象都是被封装成类以存取不同的数据,这些类的划分是与原型保持一致的。

每个浏览器的JS引擎都不一样吗?

现在每个浏览器基本上都有自己的JS引擎(非浏览器引擎)了,如Firefox浏览器的TraceMonkey引擎,Google Chrome浏览器的V8引擎,Safari浏览器有SquirrelFish Extreme,目前又增加了Opera的Carakan。

(7) 新一代JavaScript引擎 TraceMonkey

http://www.oschina.net/p/tracemonkey

TraceMonkey是套开放源代码、以C++语言所编写的新一代JavaScript引擎,于2008年8月23日正式发布。目前为Mozilla的Firefox网页浏览器3.5、3.6版本所使用。

TraceMonkey采用了尔湾加州大学团队Andreas Gal、Michael Bebenita、Mason Chang和Gregor Wagner所贡献的“Tracing”技术,Andreas Gal目前为TraceMonkey的项目领导人、以及Mozilla和Adobe所合作的Tamarin计划所开发的“Nanojit”技术。

(8) JavaScript引擎 JaegerMonkey

http://www.oschina.net/p/jaegermonkey

Mozilla预计将在9月1日发布JaegerMonkey引 擎,因此JaegerMonkey将被整合到Firefox 4.0。

V8基准测试显示,JaegerMonkey引擎积分为6829 ms,TraceMonkey引擎积分为6841 ms。Sunspider测试显示,JaegerMonkey引擎仍然要落后于TraceMonkey引擎——754 ms vs. 718 ms,而且JaegerMonkey引擎运行速度仍然落后于Webkit浏览器,Chrome和Safari的积分都要低于400 ms,Chrome浏览器的积分甚至逼近300 ms。Opera的积分也低于300s。

JaegerMonkey引擎在今年初发布是,其目标是突破Sunspider测试的500 ms大关。当然,这已经无法满足一般用户的需求了,毕竟连IE9开发版积分都已经低于500 ms。Mozilla还表示,JaegerMonkey引擎的目标是要超越竞争浏览器,这就意味着Mozilla的目标是300ms以下。

Mozilla称,JaegerMonkey是重新编写的,过去8周的时间JaegerMonkey已经有很大的改进。在下面6周的时 间,Mozilla将完善JaegerMonkey引擎,为9月1日顺利发布做好充分地准备。

Mozilla宣传,JaegerMonkey引擎的运行速度是竞争浏览器10多倍。

(9) Web浏览器引擎 WebKit

http://www.oschina.net/p/webkit

WebKit是开源的Web浏览器引擎,苹果的Safari、谷歌的Chrome浏览器都是基于这个框架来开发的。WebKit 还支持移动设备和手机,包括iPhone和Android手机都是使用WebKit做为浏览器的核心。

(10)WebKitGTK+

http://www.oschina.net/p/webkitgtk

WebKitGTK+是可移植渲染引擎WebKit在GTK+平台下的接口。


浏览器内核和浏览器引擎的关系?浏览器引擎都用的哪些?浏览器引擎的作用?JS版本发展史? 浏览器引擎负责处理 HTML 和 CSS,遵照的是 W3C 标准。。JS 引擎负责处理 JS,遵照的是 ECMAScript 标准。它们两者互相独立但又有非常紧密的结合,而且在不同浏览器内核中的实现也是不太一样的。但随着微软的 Edge 宣布将内核切换成 Chromium,目前这个战场主要就剩下苹果和 Google 两个玩家,它们的浏览器引擎分别是 Webkit 和 Blink(其实 Blink 也是 fork 自 Webkit),JS 引擎分别是JavaScriptCore和V8。 阅读详情

相关推荐

JavaScript解析引擎性能对比:前端开发中的选择

本文将对两种常见的JavaScript解析引擎进行性能对比,帮助开发者们在选择合适的引擎时做出明智的决策。综上所述,V8引擎和SpiderMonkey引擎是两种常见的JavaScript解析引擎,各自具有优点和特点。开发者应该根据项目需求和性能要求来选择合适的引擎,以确保在前端开发中获得良好的性能和用户体验。根据具体的应用场景和需求,选择适合的JavaScript解析引擎是很重要的。通过深入研究和实践,开发者们可以更好地选择和优化JavaScript解析引擎,提升前端应用的质量和性能。

BgScratch的博客 605

JavaScript引擎

一、认识JS引擎 1、为什么需要JS引擎? 越高级的编程语言,其实就是越接近人类思维的语言,但是这类语言一般电脑是完全不懂的,电脑能接受的只有包含0和1的机器指令,所以高级的编程语言,最终都要转成机器指令来执行。 无论是将js代码交给浏览器还是node执行,最后还是交给CPU执行,但是CPU只能认识自己的指令集,也就是包含0和1的机器语言,这个时候就需要JavaScript引擎来帮助我们将JavaScript代码翻译成CPU指令来执行。 2、常见的JavaScript引擎 SpiderMonkey:第一款J

qq_44482048的博客 2987

从零到一:华为iMaster NCE-Campus部署中的Euler OS与FusionInsight深度解析

本文深入解析华为iMaster NCE-Campus部署中Euler OS与FusionInsight的关键技术要点,包括RAID配置、网络绑定技术、安装避坑指南及性能调优方案。通过实战经验和详细配置示例,帮助工程师提升部署效率与系统稳定性,确保华为企业级解决方案的高效运行。

f6g7h8i9j的博客 547

你知道 6 大 JavaScript 引擎的秘密吗?

每个 JavaScript 引擎都有其独特的优势和适用场景。V8 引擎以其高性能和广泛应用闻名,特别是在 Chrome 和 Node.js 中表现出色。SpiderMonkey 提供了强大的调试工具和灵活性,适用于复杂的 Web 应用。JavaScriptCore 通过优化苹果设备性能,为 iOS 和 macOS 提供了卓越的用户体验。Chakra 的模块化设计和多线程优化使其在不同平台和嵌入式环境中表现良好。Rhino 通过与 Java 的紧密集成,为企业级应用提供了灵活性和可扩展性。

weixin_47588164的博客 2386

RT-Thread NANO V4.1.1 在Cortex-M0上移植踩坑记:解决内存分配宏导致的线程创建失败

本文详细记录了RT-Thread NANO V4.1.1在Cortex-M0平台移植过程中遇到的内存分配宏配置问题,导致线程创建失败的解决方案。通过分析内存管理算法宏定义,将RT_USING_SMALL_MEM替换为RT_USING_SMALL_MEM_AS_HEAP,成功解决了线程创建问题,为开发者提供了实用的移植经验。

weixin_29189373的博客 306

RTL8306交换机芯片与FPGA联调实战:5个网口+1个MAC的配置避坑指南

本文详细解析了RTL8306交换机芯片与FPGA联调中的关键技术难点,特别是MAC5寄存器的配置陷阱和PHY页切换机制。通过实战案例和优化策略,帮助开发者高效配置5个网口+1个MAC的工业级网络设备,提升系统稳定性和实时性。

vodka的博客 1093

什么是JS引擎

JS引擎(JavaScript引擎)是负责在浏览器或Node.js等环境中解析和执行JavaScript代码的软件组件。

HWL5679的博客 954

HAL库STM32CubeMX+DHT11温湿度传感器模块化驱动与OLED显示实战

本文详细介绍了基于HAL库和STM32CubeMX开发DHT11温湿度传感器模块化驱动的实战过程。通过精确的时序控制和模块化封装,实现了传感器数据采集,并结合OLED显示模块实时展示温湿度信息,为嵌入式开发者提供了完整的解决方案。

h6j7k8l9p0的博客 1131

深度分享:从零实现一个JS引擎

背景这是很久之前的一个念想,当时为了加深自己对js的理解,明白js引擎是如何工作的。于是从上网找了一个giao-js[1],感觉还不错,因此想学习一下。原文地址:https://juejin.cn/post/7205517870976270394?share_token=6a5d39fa-0b35-4e3c-8e93-0c9f11b2665dJS引擎之前有篇文章理解React中Fiber架构(一)...

趣谈前端 288

CLion与STM32CubeMX联调:JLink GDB Server高效调试指南

本文详细介绍了如何搭建并配置CLion、STM32CubeMX与JLink GDB Server联调的现代化STM32开发环境。通过一站式环境搭建、工程创建、核心调试配置及高级技巧(如RTT日志),该组合实现了高效的代码编辑、可视化配置与稳定调试,大幅提升嵌入式开发效率与体验。

web99的专栏 258

企业级 Agent 在 K8s 上的运行模型

Kubernetes├── Agent Orchestrator(控制面)├── Agent Runtime Pods(执行面)├── Graph DSL(流程层)├── Tool Services(能力层)K8s(调度)+ Graph(流程)+ Agent(决策)+ Tool(执行)+ Guard(治理)

一起修行,不孤单。这里有编程语言、开发工具、学习方法论和踩坑笔记。用简单的话说复杂的事,陪你从小白到进阶。周更干货,欢迎一起成长! 1171

几种JS引擎文章几种JS 引擎介绍(不同浏览器有不同的引擎)

1. 几种JS 引擎介绍(不同浏览器有不同的引擎)

threadroc的专栏 606

基于Python的IMF经济数据爬取与分析:从入门到实战

本文详细介绍了如何使用Python爬取国际货币基金组织(IMF)的经济数据,包括最新的爬虫技术、反反爬策略、数据解析与存储方法。文章从IMF数据源分析开始,逐步讲解如何构建一个完整的爬虫系统,并提供了详细的代码实现和优化建议。通过本文,读者将掌握爬取复杂国际组织数据的关键技术,并能将这些技术应用于其他类似的数据获取场景。关键词:Python爬虫、IMF数据、经济数据获取、数据清洗、反爬策略IMF Data (data.imf.org) - 主要数据门户。

2201_76125261的博客 1439

浏览器内核介绍

浏览器由shell+内核组成,shell即我们看到的菜单栏导航栏的界面。内核也称为“引擎”; 内核分2部分:渲染引擎+JS引擎。现在的浏览器内核更倾向于指渲染引擎。 渲染引擎负责页面的解析和显示,JS引擎负责javascript脚本的解析。 注意:浏览器内核不同,在处理同一段代码时会不同,最终导致了浏览器兼容问题(即同一个页面在不同的浏览器中渲染效果和脚本执行效果有差异)。 常见浏览器对应

ruoyiqing的专栏 836

【数据集4】GSWP3数据集详解

简介GSWP3数据集

WW、forever的博客 1366

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

浏览器内核-渲染引擎、js引擎

一个完整的浏览器包含浏览器内核、界面框架和其它的功能支撑。浏览器内核分成两部分:渲染引擎和js引擎。

buger的专栏 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

几种JS引擎介绍

转自:http://www.cnblogs.com/gdutbean/archive/2012/02/21/2362003.html 不同浏览器有不同的JS引擎: WebKit , Safari浏览器          ->SquirrelFish Extreme, Firefox                                    àTraceMonkey引擎

wangwei0327的专栏 1630

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【前端】浅谈浏览器内核:渲染引擎、JS引擎

浏览器内核是什么? 简而言之,浏览器内核就是把我们编写的代码转换为页面的中控件。 虽然现在大家谈起浏览器内核时,多指代渲染引擎(Rendering engine 或 layout engineer)。但其实浏览器内核包括了两部分,渲染引擎和JS引擎,只是后来JS引擎用的越来越多所以就单独的把JS引擎拿了出来。 渲染引擎 渲染引擎负责负责对网页语法的解释(如HTML、XML等)并渲染网页(CSS)。...

小鱼酱の前端之路( •̀ ω •́ )y 6861

浏览器原理及渲染引擎解析网页的过程、JavaScript 引擎解析 JavaScript 代码的过程

浏览器:是安装在电脑里面的一个软件,能够将页面内容渲染出来呈现给用户查看,并让用户与网页进行交互。服务器其实就是性能比较高的计算机,这些计算机 24 小时不断电、 不关机。开发者在本地开发出 HTML 网页文件、CSS 样式文件、JS 脚本程序等,然后上传给服务器进行存储和共享,用户就可以访问到这些资源了。例如;

duansamve的博客 1082

主流浏览器内核及JS引擎

给大家科普一下主流浏览器 学习web前端,浏览器和编辑器是我们的好朋友 所以有必要了解浏览器的一些小知识 比如:什么是主流浏览器主流浏览器主流浏览器是有一定市场份额且有自己独立研发内核的浏览器 这其中我们大家常见的有: IE/Edge,Chrome,Safari,Opera,Firefox 嗯今天是2016.10.29 我给大家看看今天的浏览器市场份额数据统计 Net Market

尐轩web前端网络日志 4572

主流浏览器内核、js引擎、渲染方式

目录 一、总结:(1、五大浏览器、内核、js引擎;2、渲染方式) 二、详解 三、InternetExplorer: 四、Safari 五、Chrome/Chromium 六、Opera 七、Firefox 其它js引擎: 一、总结: 1、主流浏览器内核及其js引擎 浏览器 内核 js引擎 IE Trident内核 JScript Firefox(火狐) Gecko内核,俗称Firefox内核 FireFox3.0及其以下...

qq_36987708的博客 1931

【JavaScript】JavaScript 简介 ① ( 浏览器组成 - 渲染引擎 / JavaScript 引擎 | JavaScrip 示例 | JavaScrip 引擎工作过程分析 )

一、浏览器组成 - 渲染引擎 / JavaScript 引擎 1、浏览器组成 2、渲染引擎 3、JavaScript 引擎 二、JavaScrip 示例 1、代码示例 2、JavaScrip 引擎工作过程分析

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 1884

JavaScript排版引擎和JavaScript引擎介绍

面对市面上众多的浏览器,开发人员如何掌控程序的兼容性呢?实际上,许多浏览器都使用了相同的内核,了解其内核就能对浏览器有一个清晰的归类。浏览器内核分成两部分:排版引擎和JavaScript引擎。...

zy1992As的博客 594

基于浏览器的3D网页游戏JavaScript 3D游戏引擎介绍

  创建基于浏览器的3D游戏一般用JavaScript+HTML5+WebGL技术,所有JavaScript 3D游戏引擎是一个话题。基于浏览器的游戏最棒的地方是不依赖于系统,它们能在iOS、Android、Windows或其他任何平台上运行。   有很多的JavaScript能够用于创建基于浏览器、使用HTML5和WebGL的3D游戏。然而选择一个合适的游戏引擎是有时能帮你完成项目或突破项目瓶颈...

欧特GO 3171

2024年大数据最新认识JS基础与浏览器引擎_js跳转搜索引擎和的意义(1)

就在这时,发生来另外一件大事:1995年Sun公司将Oak语言改名为Java,正式向市场推出;Java推出之后立马在市场上引起了轰动,Java当初有一个口号:‘write once run anywhere’;网景公司心动了,决定与Sun公司结成联盟,希望将Java嵌入到网页中来运行;Brendan Eich本人非常热衷于Scheme,但是管理层那个时候有点倾向于Java,希望可以简化Java来适应网页脚本的需求。

2401_84160361的博客 742
上一篇: VS2012调用V8的Scoped_Lock问题
下一篇: 几种JS引擎文章几种JS 引擎介绍(不同浏览器有不同的引擎)
「已注销」
博客等级 码龄14年 116粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值