写点什么

用 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:503958
用户头像

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

关注

评论

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

linux之history命令

入门小站

Linux

适合喜欢快速wiki和md的 vuepress

kcnf

PHP基础语法1

乌龟哥哥

5月月更

快速删除 node_modules

HoneyMoose

什么是数据资产?

奔向架构师

数据资产 5月月更

Java 项目编译的时候提示 javax.xml.bind.annotation does not exist 错误

HoneyMoose

九、高可用之弹性伸缩

穿过生命散发芬芳

5月月更 高可用设计

八卦信息怎样传到吃瓜群众?这是一条正儿八经的技术科普

融云 RongCloud

sealer 成为 CNCF Sandbox 项目,旨在构建分布式应用交付新标准

阿里巴巴云原生

阿里云 开源 容器 云原生

高效学习C++基础部分&话题挑战赛

安然无虞

5月月更

针对自动取款机优化需求的用例设计,应该挺全面了吧

伤心的辣条

Python 程序人生 软件测试 软件自动化测试 软件测试工程师

整理了100个必备的Python函数,建议收藏

伤心的辣条

Python 程序人生 软件测试 软件自动化测试 测试 单元测试

Go语言入门很简单:如何在 Go 语言中使用 MySQL

宇宙之一粟

Go 语言 MySQL 数据库 5月月更

Zadig + Gitee:完美实现微服务架构持续交付

Zadig

DevOps 云原生 CI/CD 软件交付

这 BUG,绝了

AlwaysBeta

程序员

看了它!你也能轻松部署vue3组件库

Jianmu

前端 持续集成 Vue 3 组件库 建木CI

在线TSV转SQL工具

入门小站

工具

中原银行流量削峰平台

中原银行

高并发 流量 中原银行 削峰

Hadoop Java api操作hdfs(二)

Emperor_LawD

hadoop 5月月更

天翼云十年一诺,以普惠算力拥抱万里山河

脑极体

测试人面试 常被问到的计算机网络题,高薪回答模板来了!

伤心的辣条

Python 程序人生 测试 自动化测试 测试 单元测试

计算机二级备考

工程师日月

5月月更

HTML的iframe使用

恒山其若陋兮

5月月更

Hoo研究院|区块链简报:以太坊创始人V神呼吁马斯克支持“非侵入式”抗新冠技术

区块链前沿News

区块链 Hoo

时不我待,TSDB崛起正当时

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

CMMI3级(低成熟度)与5级(高成熟度)到底有什么不同?

高山

CMMI CMMI高成熟度

ACK One 构建应用系统的两地三中心容灾方案

阿里巴巴云原生

阿里云 容器 云原生 容灾

云原生×实战派:向业务聚焦,数字创新时代的最佳选择

阿里巴巴云原生

阿里云 云原生 实战 电子书 案例集

浅谈前端和后端的区别

工程师日月

5月月更

在线提取Sitemap中的URL工具

入门小站

工具

奉劝想把编程学好的学弟们 · 如何高效学习编程?

安然无虞

5月月更

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