写点什么

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

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

关注

评论

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

盘点那些国际知名黑客(上)

网络安全服务

黑客

简化运维,提升效率:观测云在企业监控中的独特优势

可观测技术

参加的活动或展会每年都是同一批人 ToB企业该怎么办

客户在哪儿AI

ToB营销 活动营销 ToB增长 大客户营销

MobPush 鸿蒙端SDK API

MobTech袤博科技

Java 开发者 产品动态

淘宝商品详情数据接口| 淘宝API接口

tbapi

淘宝商品详情接口 淘宝商品API接口 淘宝API 淘宝商品详情数据

客户在哪儿AI助大客户销售最高成功概率的见到目标客户决策层

客户在哪儿AI

ToB营销 ToB获客 ToB增长 大客户营销

【YashanDB知识库】v$instance视图中实例角色含义不明确

YashanDB

yashandb 崖山数据库 崖山DB

Elasticsearch基本概念与使用

爱吃小舅的鱼

elasticsearch 数据分析

轻松获取天气信息:免费天气API一览

幂简集成

API 天气api 免费API

AV-Comparatives发布企业杀毒软件测评报告

财见

用二维码介绍旅游行程,扫码就能获取路线信息

草料二维码

二维码 草料二维码 旅游行程 旅游简介

想做出好看的PPT课件?这3款AI生成PPT工具助你一臂之力!

彭宏豪95

人工智能 效率工具 PPT 办公软件 AI生成PPT

开讲在即!免费参加第五届“解放军总医院—麻省理工学院医疗大数据学术交流及 Datathon 活动”会前培训班

ModelWhale

MobPush Android常见问题

MobTech袤博科技

开发者 产品动态

异构智算,打赢智算时代「牧野之战」

白洞计划

AI

体育赛事直播APP开发:现成源码专注优化用户界面与体验

软件开发-梦幻运营部

人工智能|思维链

霍格沃兹测试开发学社

观测云:企业数据安全的守护者

可观测技术

淘宝店铺商品API返回值分析:优化商品展示与推荐

技术冰糖葫芦

API Explorer API 编排 API 文档 pinduoduo API

技术干货丨InspirePolyFoam 高级应用:发泡仿真

Altair RapidMiner

制造业 仿真 智能制造 新材料 altair

C#开源、简单易用的Dapper扩展类库 - Dommel

EquatorCoco

C# 开源

MobPush 撤回/取消推送

MobTech袤博科技

Java 开发者 产品动态

【YashanDB知识库】23.1.3.101版本创建物化视图coredump

YashanDB

yashandb 崖山数据库 崖山DB

观测云:全球布局的监控先锋

可观测技术

面试题:如何解决缓存和数据库的一致性问题?

王磊

Java

内网穿透

源字节1号

小程序 开源 前端 后端

淘宝天猫商品详情API:商品描述与图片的获取方法

技术冰糖葫芦

API Explorer api 货币化 API 文档 pinduoduo API

如何通过一条SQL变更多个分库分表?

NineData

数据库 sql NineData 库分组 DDL变更

【YashanDB知识库】yac修改参数后关闭数据库hang住

YashanDB

yashandb 崖山数据库 崖山DB

Zilliz 推出 Spark Connector:简化非结构化数据处理流程

Zilliz

程序员 AI Milvus Zilliz 向量数据库

ShareSDK ios端 扩展功能业务设置

MobTech袤博科技

Java 开发者 产品动态

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