免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

io.js 3.0 发布:重写 Buffer,支持 PPC

  • 2015-08-11
  • 本文字数:1441 字

    阅读完需:约 5 分钟

为了利用 JavaScript 语言构建和运行大规模网络应用及服务, Node.js 项目在 2009 年被提出。其后,该项目创始人 Ryan Dahl 加入 Joyent 公司,专职负责 Node.js 项目的研发。从 2010 年到 2013 年,Node.js 快速发展,大约每个月发布一个小版本。然而,经过了 Gatekeeper 的更迭,Node.js 项目从 2014 年开始贡献频率开始下降,其 1.0 版本也迟迟未能发布。2014 年 12 月,多位重量级 Node.js 开发者另外创建了 io.js ,试图利用 V8 JavaScript 引擎实现新的特性,从而替代 Node.js。io.js 的社区非常活跃,促使其发展速度很快,先后于 2015 年 1 月和 5 月份发布了 1.0 和 2.0 版本。近期,io.js 在同意与 Node.js 合并之后,又独立发布了一个大的版本—— 3.0 版本。接下来,本文就 io.js v3.0 的主要更新进行介绍。

  1. buffer 方面。新版的 io.js 在 buffer 方面的更新较多。首先,该版本在 V8 uint8Array 的基础上重新实现了 Buffer。尽管在重新实现过程中,相关设计师已经尽量减少其对性能的影响,Buffer 实例化仍然要一定程度的变慢。具体性能影响根据 Buffer 在应用程序内使用的情况而不同。目前,Buffer 可以接受 ArrayBuffer 作为一个构造函数的参数。当单个的 buffer 传给 Buffer.concat() 时,一个新的拷贝 Buffer 而不是原本的 Buffer 将会被返回。
  2. 编译方面。新版的 io.js 的内核中添加了 PPC 支持,使得基于 pLinux BE 和 LE 的编译变得可能。
  3. dgram 方面。当 socket.send() 发生错误,而且提供 callback 时,错误信息只是作为 callback 的第一个参数进行传输。
  4. freelist 方面。未编档的 freelist 内核模块将会被拒绝。
  5. http 方面。状态代码目前使用官方的 IANA 名字作为每个 RFC7231 。例如,http.STATUS_CODES[414] 返回’URI Too Long’,而不是’Request-URI Too Large’。此外,在一个 HTTP 代理中调用.getName() 将不再返回一个 trailing colon;HTTPS 代理也不再返回一个额外的 colon。
  6. node 方面。NODE_MODULE_VERSION 调整到了 45,以反映 ABI 中的 break。而且,node 中引入了新的 process.release 对象,其包含了一个设置为’io.js’的 name 属性。而且该对象的 sourceUrl、headersUrl 和 libUrl 属性包含了指向相关资源的 URL。与 io.js 绑定在一起的 node-gyp 版本下载和使用来自 iojs.org 的 header 文件包。
  7. repl 方面。永久的历史记录修改为默认处于使能状态。历史记录的文件位于~/.node_repl_history。该位置可以通过新的环境变量 NODE_REPL_HISTORY 来进行重新定位。而且,文件的格式修改为了纯文本类型,方便文件崩溃时进行处理。
  8. smalloc 方面。由于 V8 的变化,smalloc 不再提供 API。因此,smalloc 模块在新的版本中被移除。
  9. tls 方面。该版本为 TLS 会话密钥 rotation 添加了 server.getTicketKeys() 和 server.setTicketKeys() 两个方法。
  10. V8 JavaScript 引擎方面。该版本 io.js 使用的 v8 引擎升级到了 4.4.63.26 版本。这样,一些 ES6 的特性(如使用–harmony-rest-parameters 和–harmony-spreadcalls 命令行标志可以在 staging 分别实现 rest 参数和 spread 操作符等)就可以被支持。

从以上可以看出,作为 io.js 的一个较大的更新版本,v3.0 在多个方面进行了更新。据透露,Node.js 和 io.js 未来将会合并发布新的4.0 版本。


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-08-11 19:332119
用户头像

发布了 268 篇内容, 共 121.8 次阅读, 收获喜欢 24 次。

关注

评论

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

高性能网络SIG月度动态:virtio技术委员会通过flow director提案,netdim调节特性正式合入上游社区

OpenAnolis小助手

操作系统 龙蜥社区 龙蜥社区SIG

socks5全局代理客户端:Proxifier for Mac 注册版

你的猪会飞吗

Mac软件 mac下载

创新·链接·共赢|端点科技出席第五届国有企业数智化采购与智慧供应链论坛

科技热闻

蓝易云 - 小白网站搭建教程,安排!成都云服务器

百度搜索:蓝易云

云计算 云服务器 服务器租用 香港服务器 高防服务器

说说RabbitMQ延迟队列实现原理?

王磊

Java 面试

阿里云大牛熬夜整理的Python大数据小抄,GitHub星标125K!

我再BUG界嘎嘎乱杀

Python 大数据 编程 后端 开发语言

蓝易云 - dockerfile命令详解

百度搜索:蓝易云

Docker Linux 运维 Dockerfile 云服务器

蓝易云 - ubuntu22安装和部署Kettle8.2

百度搜索:蓝易云

云计算 ubuntu 运维 kettle 香港服务器

企业全历史行为数据助ToB企业决策层开启营销的上帝视角

客户在哪儿AI

ToB营销 ToB增长 ToB销售

JDBC 最佳实践

FunTester

告别 CentOS,开源操作系统与时代同步更需“根”的力量

OpenAnolis小助手

操作系统 龙蜥社区 CentOS 停服

“SelectDB 实时数据仓库解决方案”入围工信部“信息技术应用创新典型解决方案”

SelectDB

数据库 大数据 数据仓库 云原生 信创

Python的众多包管理器

我再BUG界嘎嘎乱杀

Python 编程 后端 开发语言

Python数据结构:字典详解(创建、访问、修改、字典方法)

我再BUG界嘎嘎乱杀

Python 编程 数据结构 后端 开发语言

用这2款AIPPT软件,让你的Markdown生成PPT!

彭宏豪95

人工智能 PPT 在线白板 AIGC AI生成PPT

蓝易云 - 内存函数,memcpy,memmove,memcmp,memset

百度搜索:蓝易云

Linux 运维 C语言 内存 函数

腾讯特别调薪8%,年底十三薪分摊到月薪:福利升级还是另有深意?

王中阳Go

腾讯 面经

小智常见报表示例--层次坐标--环比报表

小智数据

小智报表 环比报表 常见报表示例 自定义报表打印控件

本周五开讲!AI 时代的运维开发工具 OS Copilot 陪跑班,分享云上最佳实践案例

OpenAnolis小助手

Alibaba Cloud Linux OS Copilot 运维开发工具

电商新时代,商家还能怎样赚钱?

自象限

蓝易云 - 云服务器利用Docker搭建sqli-labs靶场环境

百度搜索:蓝易云

Docker 云计算 云服务器 服务器租用 高防服务器

蓝易云 - docker安装elasticsearch、kibana

百度搜索:蓝易云

Docker elasticsearch Linux 运维 Kibana

蓝易云 - openGauss学习笔记-60 openGauss数据库管理-逻辑存储结构

百度搜索:蓝易云

数据库 系统 opengauss 云服务器 高防服务器

怎么填充PPT底色?分享2个办公必备的PPT技巧!

彭宏豪95

职场 PPT PPT模板 办公软件 AI生成PPT

玩转 Easysearch 语法

极限实验室

数据库 搜索引擎 easysearch 极限科技 征文系列

优秀Java 开发者都在参与的项目

XIAOJUSURVEY

maven 服务端 springboot Java 8

蓝易云 - Ubuntu开启生成Core Dump的方法

百度搜索:蓝易云

云计算 Linux ubuntu 运维 香港服务器

蓝易云 - 电商建站需选云服务器的三个理由

百度搜索:蓝易云

建站 跨境电商 独立站 电商服务器 建站服务器

蓝易云 - 企业如何选择云服务器

百度搜索:蓝易云

云计算 服务器租用 高防服务器 企业云服务器 免备案服务器

阿里云 MaxCompute MaxFrame 开启免费公测,统一 Python 开发生态

阿里云大数据AI技术

数据挖掘 大数据 阿里云 分布式计算 MaxCompute

io.js 3.0发布:重写Buffer,支持PPC_架构/框架_张天雷_InfoQ精选文章