写点什么

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

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

关注

评论

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

你真的懂Spring解决循环依赖吗?

Java 架构 Spring Boot

利用区块链技术,打造绿色发展的中药材生态链

CECBC

中药材

Github上堪称最全的面试题库(Java岗)到底有多香

Java 程序员 架构 面试

冰河公开了其总结的一项重要的编程技能!

冰河

Java 正则表达式 程序员

我是如何拿到5大银行offer

小舰

面试 银行 笔试 校园招聘

打击虚拟货币洗钱:中国破获比特币跨境洗钱案

CECBC

虚拟货币

如何在 Spring 生态中玩转 RocketMQ?

阿里巴巴云原生

Java Serverless 微服务 云原生 中间件

初识Golang之安装运行篇

Kylin

3月日更 21天挑战 Go 语言

C/C++Linux服务器开发完整学习路线(含免费学习资料下载地址)

Linux服务器开发

Linux 后端 C/C++ Linux服务器开发 Linux后台开发

linux下七种文件类型

xiezhr

Linux linux操作 linux运维 linux 文件权限控制

(28DW-S8-Day28) 战略流程重整

mtfelix

28天写作

源码分析-Netty: 架构剖析

程序员架构进阶

架构 Netty 源码剖析 28天写作 3月日更

白话讲解,拜占庭将军问题

架构精进之路

分布式 算法 3月日更

我从外包辞职了,10000小时后,走进字节跳动拿了offer

Java 编程 程序员 架构 面试

你是否觉得上级的能力不如你?

石云升

心理学 28天写作 职场经验 管理经验 3月日更

标准引领 浪潮工业互联网助力澳门质量品牌国际认证联盟成立

工业互联网

【得物技术】TDengine在得物的落地应用

得物技术

数据库 tdengine 数据 sentinel 得物技术

面试现场:遇到不会回答的问题,如何力挽狂澜 ?

xcbeyond

面试 3月日更

Hadoop UI 系统 -HUE 详细剖析

大数据技术指南

大数据 hadoop 28天写作 3月日更

朱嘉明:全面认知区块链的科学特征

CECBC

区块链

Spark提交后都干了些什么?

小舰

大数据 spark Spark调优

高质量、高并发的实时通信架构设计与探索

融云 RongCloud

实时数据流计算引擎Flink和Spark流计算对比

小舰

大数据 flink spark 流计算

深入剖析数据库事务的隔离级别

小舰

数据库 事务隔离级别 数据库事务

我们为什么需要云原生?

脑极体

微信小程序开发:如何快速实现添加一条分割线的项目需求

三掌柜

微信小程序 3月日更

安全高可用通信背后的 MySQL 优化实践

融云 RongCloud

并发编程:一次搞定单例模式

Java架构师迁哥

翻译:《实用的Python编程》07_00_Overview

codists

Python

融合发展是区块链的未来 数字通证新模式具有划时代意义

CECBC

数字通证

大专生阿里/腾讯/京东面经分享:Java面试精选题+架构实战笔记(技术狂补)

比伯

Java 编程 架构 面试 计算机

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