写点什么

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

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

关注

评论

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

企业和个人基于业务知识和代码库增强的大模型生成代码实践

京东科技开发者

人工智能丨这七大核心AI框架竟然都支持MCP

测试人

人工智能 软件测试

上海证券携手非凸科技,共筑开放共赢的私募服务新生态

非凸科技

京东零售基于国产芯片的AI引擎技术

京东科技开发者

CleanMyMac一直提示输入密码怎么办?

阿拉灯神丁

MacBook Mac 软件 CleanMyMac X

Apache SeaTunnel × Hive 深度集成指南:原理、配置与实践

白鲸开源

hive 开源 数据同步 数据集成 Apache SeaTunnel

10倍处理效率提升!阿里云大数据AI平台发布智能驾驶数据预处理解决方案

阿里云大数据AI技术

人工智能 大数据 数据分析 数据处理 智能驾驶

FCPX插件-60个社交网络图形图标动画 mModules Essentials

晨光熹微

FCPX插件-82个音频元素信息图表图形动画 Infographic Elements Audio Motion

晨光熹微

技术分享 | EC2多网卡与多IP配置

伊克罗德信息科技

区块链合约交易所开发攻略

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

Linux 基金会报告解读:开源 AI 重塑经济格局,有人失业,有人涨薪!

白鲸开源

人工智能 开源 AI 观点 开源AI

CAD如何测立面?详细教程来了

在路上

cad

流批一体的“奥卡姆剃刀”:Apache Cloudberry 增量物化视图应用解析

酷克数据HashData

快手8篇论文入选机器学习领域顶会ICML 2025!

快手技术

人工智能 顶会论文 ICML

DolphinScheduler+Sqoop 入门避坑:一文搞定数据同步常见异常

白鲸开源

大数据 sqoop 开源 Apache DolphinScheduler 任务调度

Apache DolphinScheduler保姆级实操指南:云原生任务调度实战

白鲸开源

大数据 开源 云原生 Apache DolphinScheduler 任务调度

做到真正0丢失、0重复:Apache SeaTunnel 实现万亿级数据一致性全解密

白鲸开源

开源 数据同步 数据集成 Apache SeaTunnel

FCPX插件-165个社交媒体字幕条标题图形排版介绍宣传包装动画

晨光熹微

人工智能丨让你的AI更聪明,这7个开源MCP项目不要错过

测试人

MySQL行锁功过:怎么减少行锁对性能的影响?

量贩潮汐·WholesaleTide

MySQL 数据库

三级缓存解决了循环依赖问题?别被骗了,一级缓存就够了!

电子尖叫食人鱼

Java spring 缓存

低代码:JNPF+AI,解锁“智”造未来

引迈信息

链游新纪元——链游平台开发引领游戏新潮流!

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

订单初版—分布式订单系统的简要设计文档

不在线第一只蜗牛

架构 订单

MCP新手图文指南:轻松实现AI与您的数据和工具无缝对接

测试人

主键分布不均 SeaTunnel CDC 同步卡顿多日?这样优化终于通了!

白鲸开源

开源 主键 CDC Apache SeaTunnel CDC同步

冲刺IPO!摩尔线程以硬核技术叩响科创板大门

新消费日报

FCPX模板-褶皱纸张元素定格动画图文快闪开场片头Stop Mption Opener

晨光熹微

架构师必备:业务扩展模式选型

量贩潮汐·WholesaleTide

架构 业务

Sentieon 项目文章 | 通过深度测序对血浆中游离线粒体 DNA 进行定量和表征

INSVAST

生信分析 Sentieon 变异检测 生物信息分析服务 精准医疗

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