2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

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

关注

评论

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

央视曝光APP弹窗广告三大陷阱:如何监管应用软件弹窗广告

石头IT视角

区块链的宿命,数字经济的局

CECBC

架构实战营模块二作业

子豪sirius

架构实战营

2.4如何提高架构设计的质量

Lemon

清晰了!一文彻底理解Java事件处理

Jackpop

Java

设计消息队列存储消息数据的MySQL表格

俞嘉彬

架构实战营

Python OpenCV 图像的膨胀与腐蚀,图像处理取经之旅第 38 篇

梦想橡皮擦

7月日更

架构实战营模块二作业

Morphling

#架构实战营

架构训练营模块 2 作业 - 听闻

听闻

编程的本质是什么?

白色蜗牛

Java 编程 程序员 软件 计算机

架构实战营第二课作业——微信朋友圈的高性能复杂度分析

tt

架构实战营

架构训练营第 1 期 模块二作业

高远

进阶指南!深入理解Java注解

Jackpop

Java

一篇并不起眼的数据仓库面试题

王知无

微信朋友圈高性能架构分析

面向对象的猫

大数据训练营-第一次作业

西伯利亚鼯鼠

架构训练营 1 期 - 模块二作业

蔸蔸

MapReduce案例(一)-- 流量统计

钱江兵

MVP on Board 没用小技巧 👌

newbe36524

.net MVP ASP.NET Core

架构训练营模块二作业

老实人Honey

「架构师训练营第 1 期」

知乎热文 | 如何高效学习Spring Boot?

Jackpop

Java Spring Boot

架构实战营 - 模块 2 - 微信朋友圈高性能复杂度分析

雪中亮

架构实战营 #架构实战营

【数据结构】Java 同步工具 AQS

Alex🐒

Java 源码 数据结构

健康讲座:如何提升人体免疫能力

石云升

学习 健康 7月日更

架构实战营 - 模块二(作业)

Cingk

模块二作业

俊杰

多维数据分析(OLAP)技术选型(2):数据分析与OLAP差异

水滴

数据分析 OLAP 技术选型

微信朋友圈高性能复杂度分析

gawaine

架构实战营

《面试补习》--来聊聊削峰填谷!

九灵

Java 分布式 消息队列 异步削峰

架构训练营模块二作业

BlingBling

架构实战营

架构实战营 - 模块二

Testcase

架构实战营

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