- 浏览: 3049370 次
- 性别:
- 来自: 海外
文章分类
- 全部博客 (430)
- Programming Languages (23)
- Compiler (20)
- Virtual Machine (57)
- Garbage Collection (4)
- HotSpot VM (26)
- Mono (2)
- SSCLI Rotor (1)
- Harmony (0)
- DLR (19)
- Ruby (28)
- C# (38)
- F# (3)
- Haskell (0)
- Scheme (1)
- Regular Expression (5)
- Python (4)
- ECMAScript (2)
- JavaScript (18)
- ActionScript (7)
- Squirrel (2)
- C (6)
- C++ (10)
- D (2)
- .NET (13)
- Java (86)
- Scala (1)
- Groovy (3)
- Optimization (6)
- Data Structure and Algorithm (3)
- Books (4)
- WPF (1)
- Game Engines (7)
- 吉里吉里 (12)
- UML (1)
- Reverse Engineering (11)
- NSIS (4)
- Utilities (3)
- Design Patterns (1)
- Visual Studio (9)
- Windows 7 (3)
- x86 Assembler (1)
- Android (2)
- School Assignment / Test (6)
- Anti-virus (1)
- REST (1)
- Profiling (1)
- misc (39)
- NetOA (12)
- rant (6)
- anime (5)
- Links (12)
- CLR (7)
- GC (1)
- OpenJDK (2)
- JVM (4)
- KVM (0)
- Rhino (1)
- LINQ (2)
- JScript (0)
- Nashorn (0)
- Dalvik (1)
- DTrace (0)
- LLVM (0)
- MSIL (0)
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
Wow...that's all I can say when I first saw this new version of Webkit's JavaScript engine. Yet another amazing piece of work indeed.
近来不停有强悍的JavaScript引擎传出消息来,Webkit的SquirrelFish Extreme(简称SFX)是最新的一则。在三个月前公布的SquirrelFish的基础上,他们又做了许多重要的改进,使引擎的执行速度有了又一次飞跃。
官方blog的消息:Introducing SquirrelFish Extreme
Webkit Wiki: SquirrelFish
改进点主要是以下4点:
1. Bytecode Optimizations
2. Polymorphic Inline Cache
3. Context Threaded JIT
4. Regular Expression JIT
多态内联缓存的部分在概念上与早先发布的V8有十分相似的地方,都是基于对象的结果在程序执行过程中实际上变化不会很大的假设来做优化,但具体的实现方法不同。
正则表达式的改进也值得注意。我还是没弄清楚到底原本的JavaScriptCore有没有用PCRE(更新:确认了JavaScriptCore有用PCRE的变种,叫做JSCRE),但Tamarin是用PCRE,而V8也是用相关的JSCRE的,这部分大家原本或许都差不多。
现在SFX也有JIT了,也就是说我关注的JavaScript引擎都已经完成了从纯解释器到JIT的转换,并且还在不断改进。微软在最近的会议上也表示JavaScript将会是强劲的竞争对手,那么他们到底会怎么应对呢,真期待。IE8的JScript引擎在这些新引擎面前看来是完败了……
说起来,新一代的脚本语言的引擎都远比以前的快,也是多亏了脚本语言的潮流啊。大家现在用的许多优化技术都是基于以前的LISP或Smalltalk的变种已经在使用的技术,会让人感叹:syntax still matters。
有这么多新的JS了,不知道有没有办法可以自定选用哪一种
自定选用哪一种?你是说在浏览器里?
近来不停有强悍的JavaScript引擎传出消息来,Webkit的SquirrelFish Extreme(简称SFX)是最新的一则。在三个月前公布的SquirrelFish的基础上,他们又做了许多重要的改进,使引擎的执行速度有了又一次飞跃。
官方blog的消息:Introducing SquirrelFish Extreme
Webkit Wiki: SquirrelFish
改进点主要是以下4点:
1. Bytecode Optimizations
2. Polymorphic Inline Cache
3. Context Threaded JIT
4. Regular Expression JIT
多态内联缓存的部分在概念上与早先发布的V8有十分相似的地方,都是基于对象的结果在程序执行过程中实际上变化不会很大的假设来做优化,但具体的实现方法不同。
正则表达式的改进也值得注意。我还是没弄清楚到底原本的JavaScriptCore有没有用PCRE(更新:确认了JavaScriptCore有用PCRE的变种,叫做JSCRE),但Tamarin是用PCRE,而V8也是用相关的JSCRE的,这部分大家原本或许都差不多。
现在SFX也有JIT了,也就是说我关注的JavaScript引擎都已经完成了从纯解释器到JIT的转换,并且还在不断改进。微软在最近的会议上也表示JavaScript将会是强劲的竞争对手,那么他们到底会怎么应对呢,真期待。IE8的JScript引擎在这些新引擎面前看来是完败了……
说起来,新一代的脚本语言的引擎都远比以前的快,也是多亏了脚本语言的潮流啊。大家现在用的许多优化技术都是基于以前的LISP或Smalltalk的变种已经在使用的技术,会让人感叹:syntax still matters。
评论
2 楼
RednaxelaFX
2008-09-21
lwwin 写道
有这么多新的JS了,不知道有没有办法可以自定选用哪一种
自定选用哪一种?你是说在浏览器里?
1 楼
lwwin
2008-09-21
有这么多新的JS了,不知道有没有办法可以自定选用哪一种
FX大知道怎么做罢??
FX大知道怎么做罢??
发表评论
-
Function.prototype.bind
2013-09-24 18:07 0polyfill http://stackoverflow. ... -
Nashorn各种笔记
2013-07-15 17:03 0http://bits.netbeans.org/netbea ... -
JavaScript global properties are bound by name, not by value
2013-06-04 14:42 0function a() { console.log('a1' ... -
PICs and prototypes
2013-05-30 13:10 0In a lot of the implementations ... -
Nashorn notes
2013-05-28 10:44 0Nashorn NodeVisitor: the same a ... -
Building Blocks of a JavaScript Engine
2013-05-23 00:49 0sketches of my new book "B ... -
读《JavaScript语言精髓与编程实践(第二版)》
2013-05-21 00:32 02008年逛书店的时候偶 ... -
V8与c1visualizer
2011-08-21 21:00 0Subject: [v8-dev] Improved c1vi ... -
Rhino的JavaScript与Java的整合
2011-05-05 14:40 0http://www.mozilla.org/rhino/Sc ... -
this = null的杯具
2011-03-09 17:04 0this不允许赋值? FireFox表示吐槽 Chrome却欣 ... -
简单替换URL中查询字符串的参数值的代码
2010-04-11 17:49 6187刚有个需求是要把URL中query部分的一个指定参数的值替换为 ... -
JägerMonkey的组件介绍
2010-03-16 13:00 0David Mandelin JägerMonkey & ... -
眼见为实——V8的隐藏类与inline cache的例子
2010-03-02 13:42 0src/globals.h // State for inli ... -
JavaScript一些难以优化的地方
2010-03-02 08:54 0arguments with eval -
JägerMonkey与Carakan动态更新
2010-02-28 22:08 3037今天读了几篇与JavaScript引擎相关的帖。三篇关于Moz ... -
Opera的JS引擎,Carakan
2009-12-03 01:47 0Wikipedia 引用Presto is a layout ... -
with的陷阱
2009-11-21 18:41 0让eval()全局作用域执行的方法深入研究 用with(win ... -
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩
2009-10-17 02:52 133026(Disclaimer:如果需要转 ... -
再谈Google V8和Webkit Nitro
2009-08-21 18:11 0JavaScriptCore SquirrelFish -&g ... -
把列表里连续的数字合并到连续范围里
2009-06-07 20:46 3383论文写得快疯了嗯。上来换口气。 刚才看到问答频道的一个问题, ...
相关推荐
名词引擎,编译器与作用域浏览器不同,其引擎也不同,例如Chrome采用的是v8,Safari采用的是SquirrelFish Extreme。编译器:编译过程主要分为“词法分析”,“语法分析”和“代码生成”。作用域(范围):根据名称...
4. **WebKit** - Chrome和Safari的内核,Safari使用JavaScriptCore(SquirrelFish Extreme)。 5. **Presto** - Opera的内核,但现在已经不再更新。 **测试目标** JavaScript单元测试主要关注以下两个方面: 1. *...
8. **external**:集成的开源软件组件,如Webkit、SquirrelFish等。 9. **frameworks**:核心框架的代码,包括Java和C++两部分,提供了应用程序运行所需的基本服务和API。 10. **hardware**:硬件抽象层(HAL),...
内置的Chromelite浏览器在Android 1.5中采用了最新的Webkit引擎和Squirrelfish JavaScript引擎,网页加载速度更快,浏览体验更佳。此外,还新增了网页内容复制、页内搜索功能,以及对网页默认编码的自定义设置。这些...
这种性能差异在旧版浏览器如Internet Explorer中尤为明显,而在使用了优化后的JavaScript引擎(如Google Chrome中的V8引擎和WebKit中的SquirrelFish引擎)的现代浏览器中,这种差异则有所减少。 这些测试证明,局部...
然而,随着Google Chrome和WebKit午夜版等新浏览器的出现,采用优化后的JavaScript引擎(如V8和SquirrelFish)之后,访问变量时即使作用域链深度增加,性能也不会明显下降。这些优化包括改进标识符解析过程,从而...
- **其他引擎**:包括IE中的“Trident”、“Chakra”,Microsoft Edge中的“ChakraCore”,Safari中的“Nitro”和“SquirrelFish”等。 #### 四、JavaScript引擎的工作原理 1. **解析**:JavaScript引擎读取...
1.6.8 monkeys、squirrelfish和其他javascript引擎 19 1.7 小结 20 .第2章 canvas api 22 2.1 html5 canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24...
1.6.8 Monkeys、Squirrelfish和其他JavaScript引擎 19 1.7 小结 20 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24 2.1.5 ...
1.6.8 Monkeys、Squirrelfish和其他JavaScript引擎 19 1.7 小结 20 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24 2.1.5 ...
1.6.8 Monkeys、Squirrelfish和其他JavaScript引擎 19 1.7 小结 20 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24 2.1.5 ...
1.6.8 Monkeys、Squirrelfish和其他JavaScript引擎 19 1.7 小结 20 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24 2.1.5 ...
1.6.8 Monkeys、Squirrelfish和其他JavaScript引擎 19 1.7 小结 20 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24 ...
1.6.8 Monkeys、Squirrelfish和其他JavaScript引擎 19 1.7 小结 20 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24 ...
1.6.8 Monkeys、Squirrelfish和其他JavaScript引擎 19 1.7 小结 20 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24 ...
1.6.8 Monkeys、Squirrelfish和其他JavaScript引擎 19 1.7 小结 20 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24 ...
1.6.8 Monkeys、Squirrelfish和其他JavaScript引擎 19 1.7 小结 20 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 24 ...
1.6.8 Monkeys、Squirrelfish和其他JavaScript引擎 19 1.7 小结 21 第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 23 ...