博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mozilla正在SpiderMonkey中测试JavaScript并行计算
阅读量:7061 次
发布时间:2019-06-28

本文共 1031 字,大约阅读时间需要 3 分钟。

Mozilla正致力于实现JavaScript“并行(parallelism)计算”,以便充分利用硬件性能。Dave Herman是Mozilla Research的首席研究员和策略总监。近日,他在一篇中提到,他们正在其JavaScript引擎SpiderMonkey中进行相关实验。\

他们试图通过一种底层的、渐进的方法为JavaScript添加更加灵活和强大的并行计算原语。他首先指出:\

\

我正在谈论的不是“并发(concurrency)”……JavaScript的异步并发模型很受欢迎,也取得了成功,而且、和即将到来的正使它变得越来越好。

\

这里要探讨的是可以释放设备(GPU、SIMD指令及多内核处理器)潜能的并行计算。已经在多核并行计算方面做了一些工作,但其工作线程是完全隔离的,只能通过进行通信。\

还有一种方案比较激进,就是像那样将JavaScript变成一种完全多线程的数据模型。不过,那需要宿主Java程序小心地同步脚本,否则,JavaScript应用程序无法得到“运行至完成(run-to-completion)”的保证。而且,这个过程会伴随大量的标准化和实现工作,进而会带来生态系统方面的风险。\

另一方面,Mozilla Research和Intel Labs这些年来也在(有人称为或)方面做了一些实验。但他们选择了一种很困难的方法,因为很难找到一种足够通用的高级模型能够适合各式各样的并行程序。\

于是,他们引入了SharedArrayBuffer类型。不同于PJS,它内置的锁定机制为工作线程带来了新的锁定形式,但同样地,部分对象也可能因此遭受。不过,与Nashorn不同的是,这种情况只会出现在选择使用共享内存作为后台存储的对象中。如果创建了一个不使用共享缓冲区的对象,那么可以确定,它永远不会出现数据争用。Dave表示,这是一种相对保守的方法,但应该能够满足许多应用场景的需求。实际上,几年前就有人过这种方法。在去年的大会上,谷歌PNaCI团队的Nick Bray还演示了一个。\

目前,Dave及其团队正在SpiderMonkey中测试SharedArrayBuffer API,并且正在草拟它的。中已经提供了原型实现,感兴趣的读者可以下载试用并提供反馈。


感谢对本文的审校。

\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至。也欢迎大家通过新浪微博()或者腾讯微博()关注我们,并与我们的编辑和其他读者朋友交流。

转载地址:http://eifll.baihongyu.com/

你可能感兴趣的文章
利用IDEA构建springboot应用
查看>>
JAVA高级--异常处理概念和异常处理机制
查看>>
AngularJS code converage
查看>>
【ASP.NET Process Model 笔记 二】ASP.NET Http Runtime Pipeline
查看>>
c# 抓取 js动态生成的HTML的工具:NHtmlUnit‎
查看>>
1849: Cool number
查看>>
【小知识】为什么负数除二和右移一位的结果不一样?
查看>>
ecshop调用指定分类(包含子分类)下所有产品的评论信息
查看>>
树莓派板子中的灯光的信息
查看>>
前端常见的设计模式
查看>>
Java基础——数组Array
查看>>
053(四十五)
查看>>
自问自答-hadoop自带哪些案例(0.20.2)
查看>>
tachyon 集群安装
查看>>
JS控制元素可见(显示)与不可见(隐藏)
查看>>
移除“xmlns”命名空间
查看>>
CSS九宫格带边框的多种实现
查看>>
Codeforces Round #556 (Div. 2) C. Prefix Sum Primes
查看>>
转载文章 RESIZING WIN32 DIALOGS
查看>>
使用反射循环获取对象的属性和值
查看>>