写点什么

用 Google 的 Native Client 提高 Web 应用程序的性能

  • 2010-04-15
  • 本文字数:888 字

    阅读完需:约 3 分钟

为了提高 CPU 密集型 Web 应用程序的性能,Google 正在开发

Native Client(本地客户端),一个运行本地代码的浏览器技术。不像 Netscape 的

NPAPI 或微软的

ActiveX 插件技术,Native Client 运行在双沙箱里,从而被禁止访问底层的操作系统。

提高 Web 应用程序性能的一个方法是让浏览器运行本地的应用程序。这种方式运行本地代码通常比 Javascript 要快。但是这样会导致严重的安全问题,比如访问数据或者创建额外的网络连接。这是针对 NPAPI 和 ActiveX 的主要诟病之一。Native Client 希望能通过在一个特别的沙箱里运行本地应用程序并禁止访问底层操作系统的方式来解决这个问题。本地应用可以使用 CPU 以及与 Native Client 交互。

> 1. 提供一个不依赖于 ISA 的格式来编译 NaCI 模块,来支持广泛流行的目标平台,而不需要重新编译代码。
>
> 2. 让 NaCI 开发者很容易的构建、测试以及部署可移植执行模块。
>
> 3. 开始的时候支持 x86-32、x86-64 以及 ARM 指令集 ,但将来会直接支持其他流行的通用 CPU。
>
> 4. 保持 Native Client 的安全和性能

为了让开发者更容易开发,Native Client 模块可以用任何语言实现,然后被编译成

LLVM (底层虚拟机) 二进制编码。LLVM 是一个编译基础架构,它提供 ISA 中立性,所以原来的代码不需要被移植到不同的目标平台。二进制代码被进一步优化并保存到一个文件中。如果一个网页包含类型为 Native Client 的标签,浏览器就会创建相应的环境并下载相应的 LLVM 文件。接着二进制代码就被翻译成为本地代码并被解析,以确保它不会执行非法操作。然后才会执行原定的 CPU 操作。开发者只需要编写一次就可以部署到多个架构上,中间的 LLVM 层甚至能让模块在写代码时还不存在的更新的架构上运行。

Google 已经创建了支持以下平台的 Native Client

:Windows、Max OS X 以及 Linux x86-32、x86-64 和 ARM,而且对任何有兴趣的架构都是开放的。该

基准表明 Native Client 应用程序在 x86 和 ARM 上以普通应用程序 97% 的速度运行。Native Client 可以运行在

Firefox、Safari、Opera 以及 Google Chrome 应用程序的例子比如经典游戏 Quake,互动分形动画软件 Xaos 以及 Lua——一个脚本引擎。

2010-04-15 04:503413
用户头像

发布了 42 篇内容, 共 17.0 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

Macs Fan Control Pro for mac(电脑风扇控制软件) v1.5.16永久激活版

mac

苹果mac Windows软件 Macs Fan Control 电脑风扇软件

PS插件:卡通人物漫画风格一键生成插件Cartoon Maker - Clone - Photoshop Plugin 汉化版

iMac小白

SD-WAN组网案例:异地组网跨境访问

Ogcloud

网络 SD-WAN 组网

淘宝获得商品详情 API:打开电商精细化运营的大门

技术冰糖葫芦

API

如何高质量完成体育赛事直播平台需求开发

软件开发-梦幻运营部

浅析 ArrayList

emanjusaka

jdk 源码分析 ArrayList

JetBrains PyCharm 2023 v2023.3.1 激活版

影影绰绰一往直前

JetBrains CLion 2023 v2023.3.1 激活版

影影绰绰一往直前

给网站引入各大搜索引擎的关键字提示,白给的接口薅他羊毛。

23朵

js 搜索

SD-WAN组网:企业网络的首选

Ogcloud

网络 SD-WAN 组网 WAN

JetBrains DataSpell 2023 v2023.3.1 激活版

影影绰绰一往直前

Adobe Photoshop 2024 (PS2024) 直装版下载

影影绰绰一往直前

JetBrains GoLand 2023 v2023.3.1 激活版

影影绰绰一往直前

System Dashboard Pro for Mac v1.10.3激活版

影影绰绰一往直前

Adobe Illustrator 2024(AI2024)直装版

影影绰绰一往直前

中小型企业怎么选SD-WAN?

Ogcloud

网络 SD-WAN 组网

PostgreSQL入门指南:快速学会创建和管理数据库!

高端章鱼哥

数据库 postgresql

拼多多ID取商品详情API:电商行业的核心价值与实时数据获取策略

Noah

探索 Java 线程的创建

emanjusaka

Java 线程 后端 Thread

E3PO 进行 360° 视频传输体验 开源赛道 2:畅想 360° 视频传输

Echo_Wish

技术 2023 E3PO 畅想 360° 视频传输 开源赛道2

2023 Tech Sanya大赛半决赛暨中国企业战略投资峰会即将盛势来袭

创业邦

ps插件:alpaca增效工具 (完美替代AI创成式填充) v2.8.1 中文版

iMac小白

解除Java反复编译的困扰方法,优化开发效率

互联网工科生

Java 编译

深入解读ReAct框架

Bob Lin

AI Python3 openai GPT-4 #LangChain

腾讯云向开放原子开源基金会捐赠OpenTenBase,推动关键数字基础设施加速突破

Geek_2d6073

我的2023年终总结

南哥

The Clock for Mac(世界时钟日历工具)v4.9.1中文激活版

影影绰绰一往直前

Adobe Lightroom Classic 2024(LrC2024)直装版

影影绰绰一往直前

一个有点东西的后台管理系统,基于vue3+vite。

23朵

Vue Element Plus

如何正确使用缓存来提升系统性能

伤感汤姆布利柏

后端

一位福友的2023年外贸总结

九凌网络

用Google的Native Client提高Web应用程序的性能_Google_Abel Avram_InfoQ精选文章