写点什么

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

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

关注

评论

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

案例分享 | 银行如何构建动态闭环安全防护体系?塞讯验证带你看

塞讯科技

网络安全 银行 安全运营 安全验证

Rocky Linux 10 x86_64 OVF (sysin) - VMware 虚拟机模板

sysin

Rocky Linux

【多线程】Java多线程与并发编程全解析

不在线第一只蜗牛

Java

【CodeBuddy】三分钟开发一个实用小功能之:爆炸式模态框弹出

jimaks

CSS

Rocky Linux 10 aarch64 OVF (sysin) - Apple silicon VMware 虚拟机模板

sysin

Rocky Linux

AppSpider 7.5.018 for Windows - Web 应用程序安全测试

sysin

AppSpider

Infoblox DDI (NIOS) 9.0 - DNS、DHCP 和 IPAM (DDI) 核心网络服务管理

sysin

Infoblox

Arista EOS 4.34.0F - 适用于下一代数据中心和云网络的可扩展操作系统

sysin

Arista

Rocky Linux 10 - RHEL 100% 1:1 兼容免费发行版

sysin

Rocky Linux

GNS3 v3.0.5 - 开源免费网络模拟器

sysin

网络模拟器

三问业务数据化与数据业务化

优秀

数字化 业务数据化 数据业务化

CAD标注样式如何设置?详细教程来了

在路上

cad cad看图 CAD看图王

AlmaLinux 10 - RHEL 二进制兼容免费发行版

sysin

AlmaLinux

AlmaLinux 10 x86_64 OVF (sysin) - VMware 虚拟机模板

sysin

AlmaLinux

Oracle Linux 10 - Oracle 提供支持 RHEL 兼容发行版

sysin

oracle

Nexpose 8.8.0 for Linux & Windows - 漏洞扫描

sysin

Nexpose

《算法导论(第4版)》阅读笔记:p115-p126

codists

算法

好端端的线程池,怎么就卡死了?

电子尖叫食人鱼

Python Linux 线程池

Redis配置文件详解

不在线第一只蜗牛

redis

Arista vEOS 4.30.10M - 虚拟化的数据中心和云网络可扩展操作系统

sysin

Arista

科学智能新篇章:国际科学智能联盟在京成立,开启“大科研时代”

ModelWhale

科学智能 AI4S 国际科学智能联盟

贝锐花生壳内网穿透:高速远程访问绿联NAS和Docker应用

贝锐

内网穿透 NAS Docker 镜像

Red Hat Enterprise Linux 10 正式版发布,主打在混合环境中提供更强大的智能与安全能力

sysin

RHEL

Metasploit Pro 4.22.7-2025052201 (Linux, Windows) - 专业渗透测试框架

sysin

Metasploit

Flawnter 5.9.1 (macOS, Linux, Windows) - 应用程序安全测试软件

sysin

安全测试

Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统

sysin

Arista

为何PostgreSQL没有聚集索引?解读两大数据库的设计差异

电子尖叫食人鱼

数据库

多图框CAD图纸如何快速导出?快试试导出多页PDF功能

在路上

cad cad看图 CAD看图王

判别式 AI 与生成式 AI

量贩潮汐·WholesaleTide

人工智能

AI应用如何不被淘汰?深耕RAG与数据底座是关键

E科讯

Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台

sysin

漏洞利用

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