【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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

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

关注

评论

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

中国政府大数据市场,我们又是第一

浪潮云

云计算

接口全面重构TypeScript ,让uni-app 具备出色的基础音视频能力

ZEGO即构

typescript uni-app 音视频

🌏【架构师指南】分布式技术知识点总结(中)

洛神灬殇

分布式架构 架构师技能 分布式技术 6月日更

新华三商用终端新品全系入市,重塑办公极致体验

科技热闻

卧薪尝胆30天!啃透京东大牛的高并发设计进阶手册,终获P7意向书

Java 程序员 架构 面试 高并发

奇亚节点分币系统搭建,Bzz节点分币APP搭建

搭建企业私有GIT服务

IT视界

git

区块链如何赋能智慧城市

CECBC

虚拟货币监管再加码:央行约谈部分金融机构 要求切断支付链路

CECBC

面试官问我:如何减少客户对交付成果的质疑

华为云开发者联盟

Scrum 敏捷开发 项目 用户故事 研发

从零开始学习3D可视化之物体选择

ThingJS数字孪生引擎

大前端 可视化 程序媛 3D可视化 数字孪生

浅谈B端产品的表单元素设计

LigaAI

产品经理 UI 产品设计与思考

年中面试经历:美团2面+字节3面+阿里4面+腾讯Java面经,终入字节

Java 程序员 架构 面试

架构实战营 - 模块 6- 作业

carl

网络抓包实战04——深入浅出连接建立

青春不可负,生活不可欺

双非渣硕,开发两年,苦刷算法47天,四面字节斩获offer

Java 程序员 架构 面试 算法

网络抓包实战03——TCP/IP协议栈:数据包如何穿越各层协议

青春不可负,生活不可欺

dubbogo 社区负责人于雨说

apache/dubbo-go

dubbo dubbo-go dubbogo

“半监督”、“自监督”怎么用?| 算法深度剖析与实战分享

网易易盾技术团队

AI 算法 算法实践 实践案例 深度半监督

算法有救了!GitHub上神仙项目手把手带你刷算法,Star数已破110k

Java架构师迁哥

产业互联网时代的数字化转型与创新

CECBC

在windows上用Nginx做正向代理

Python研究所

网络 Proxy 正向代理

联邦学习—金融数据壁垒和隐私保护的解决之道

索信达控股

大数据 金融科技 联邦学习 金融 数据隐私

强化学习 | COMA

行者AI

人工智能

Java的函数式接口

中原银行

Java 函数式接口 中原银行

从渗透测试小白到网络安全大佬的成长之路

学神来啦

Linux 运维 网络安全 渗透测试

鉴释×CSDN丨国内外操作系统生态差异在哪?

鉴释

操作系统

ES6 迭代器简述

编程三昧

JavaScript 大前端 ES6 迭代器

英特尔宋继强:异构计算的关键一环,先进封装已经走向前台

E科讯

冷门科普类自媒体如何才能脱颖而出

石头IT视角

微服务到底是什么?spring cloud在国内中小型公司能用起来吗?

Java架构师迁哥

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