写点什么

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

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

关注

评论

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

chrome对页面重绘和回流以及优化进行优化

zhoulujun

chrome 重绘 回流

Django笔记四之字段属性

Hunter熊

Python django model field 字段属性

SQLChat 的 RBAC 之旅

天黑黑

AI sql 数据库· ChatGPT

Mac 触控增强神器BetterTouchTool详细图文使用教程

Rose

苹果电脑 BetterTouchTool破解 BetterTouchTool教程 Mac 触控板

Cornerstone for Mac(最好用的SVN管理工具) v4.2永久激活版

Rose

mac软件下载 SVN客户端 cornerstone 4破解 Cornerstone mac版

5分钟搞懂5G安全增强

俞凡

5G 安全 网络 通信

保持住你写代码的姿势,你就是黑带了

Bruce Talk

敏捷开发 TDD Agile

区分List中 remove(index)/remove(Object)

Joseph295

失真函数、失真矩阵与平均失真

timerring

信息论

macOS 13 Ventura (苹果最新系统) v13.3.1正式版

Rose

macOS 13 Ventura 苹果最新系统 Macos13系统

哪个网站的电子书最多?

Jackpop

流批一体数据交换引擎 etl-engine

weigeonlyyou

flink 消费 kafka 物联网 数据迁移 Kafka ETL 大数据‘’

MouseBoost for Mac(右键助手)中文版

Rose

mac电脑 MouseBoost for Mac MouseBoost激活版 右键鼠标助手工具

使用Tuxera NTFS Mac修护移动磁盘:步骤详解

Rose

Tuxera NTFS Mac2022 Tuxera NTFS教程 ntfs

深度学习基础入门篇[三]:优化策略梯度下降算法:SGD、MBGD、Momentum、Adam、AdamW

汀丶人工智能

人工智能 机器学习 深度学习 梯度下降算法

post-css/less/sass样式嵌套与命令之"&"符号—BEM

zhoulujun

less SASS bem post-css

有哪些 python 的在线练习题或编程挑战的网站?

Jackpop

如何优雅地使用 Markdown?

Jackpop

sketch文件导出没有背景色怎么办? sketch背景色消失的解决办法

Rose

sketch Mac Sketch下载 sketch无背景

推荐一款优秀电商开源项目

越长大越悲伤

开源 推荐算法 电商 Java'

简单好用的文件对比工具:Beyond Compare 4中文版

真大的脸盆

Mac Mac 软件 文件对比 文件对比工具 对比文件

【异常解决】postman请求提示Full authentication is required to access this resource

No8g攻城狮

测试 Postman

QEMU线程模型

Linux内核拾遗

线程模型 Linux Kenel 虚拟化 qemu kvm

AI日课@20230408:如何基于大模型训练一个自己的数字克隆

无人之路

ChatGPT

Vue3 Transition 踩坑记

沉浸式趣谈

踩坑 Vue 踩坑经历 vue cli VUE 3.0 源码解析

【Spring专题】「技术原理」从源码角度去深入分析关于Spring的异常处理ExceptionHandler的实现原理

码界西柚

spring 源码分析 4月日更 ExceptionHandler 异常处理器

css过去及未来展望—分析css演进及排版布局的考量

zhoulujun

CSS

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