告别性能问题:Ruby 3.0正式发布
【告别性能问题:Ruby 3.0正式发布】经历了长久的等待 , 我们终于在圣诞期间迎来了 Ruby 3.0 , 正如开发者 Matz 在上次演讲中所说的那样 。 对于 Web 开发者来说 , 本次更新不仅提升了运行速度 , 还克服了早前的一些缺点 。 首先 , 异步线程将由 Fibers 进行控制 , 因为当前的服务器会在释放其它线程时阻塞 I/O 操作 , 比如 API 调用 / 数据库操作等 。
文章插图
(图 via Sloboda Studio)
其次是启用基于 Fibers over Threads的线程操作 , 是因为这么做能够减少上下文的切换开销 。
然后是 Ruby Actor / Ractor:它与 JavaScript 中在后台运行的网络操作相似 , 但 Ractor 还支持并行执行 。 由于法共享普通对象 , Ractor 的线程并行安全性也更优 , 且支持基于消息传递的通讯方案 。
内存性能方面 , 通过使用垃圾压缩器(GP) , 大多数对象将被传输到堆(heap)并自动压缩 。
得益于 RBS , Ruby 3.0 还支持类型检查 。 作为一款类型签名语言 , RBS 可用于描述类的类型和定义、方法、实体变量、继承 / 混合关系、以及 Ruby 模块 。
其旨在查看 Ruby 程序中的常见模式 , 且允许联合、方法重载、以及泛型之列的高级类 , 让进程处理以 .rbs 格式编写的签名文件成为了可能 。
文章插图
(传送门:Ruby-lang.org)
此外还有即时编译器方面的改进 , 因为 JIT 的编译速度提升了 50~500%(取决于具体的工作量)、支持编码块参数、权利转让(Right Assignmenet) , 以及包括 RubyGems 3.2.0.rc.1、Bundler 2.2.0.rc.1、IRB 1.2.6、Reline 0.1.5 在内的某些标准库更新 。
最后是向后兼容性 , Ruby 3.0 让在不同版本间进行切换不再是个问题 , 且日志中的警告信息有助于快速修复 bug。
推荐阅读
- 搭载骁龙888处理器+120W超充 横屏性能旗舰iQOO 7正式发布
- 不单性能一骑绝尘 iQOO 7的这些亮点也值得一提
- 骁龙888领衔 iQOO 7搭载新一代性能“铁三角”
- “性能旗舰”iQOO 7正式发布:感受全感操控3798元起
- 一则消息传来,苹果iPhone12再现问题,“果粉”有点慌
- 苹果两款新iPad齐曝光:性能提高、入门款更轻薄、售价便宜
- 发售仅7天,性能全国第一:华为、OV一起上,都不如这款手机?
- 与荷兰光刻机完成联机!国产芯片设备传来喜讯:技术问题已经解决
- 传统1/10大小 七彩虹发布最小的mini SSD硬盘:性能首次公开
- 国产芯再传好消息,关键技术问题已经解决,与荷兰光刻机联机成功