告别性能问题: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正式发布】最后是向后兼容性 , Ruby 3.0 让在不同版本间进行切换不再是个问题 , 且日志中的警告信息有助于快速修复 bug。
- 华为鸿蒙系统|鸿蒙是安卓“换皮”产品?一亿多用户,难道还不足以说明问题
- 小米科技|雷军:小米12即将发布!首款搭载骁龙8手机,性能和功耗咋样?
- 电子商务|小伙刚买的固态硬盘就出问题了,找商家竟然不给退,这该怪谁呢?
- spring|性能最强5G手机,现在现货供应,好评率97%
- 物流|独立站是什么?怎么做?有哪些成本?独立站运营核心7大常见问题
- 游戏手机|安兔兔11月性能榜解析,游戏手机之外vivo成最大赢家
- |联想小新air和pro的区别大吗?哪个性能更强?详细解读
- 电池|2021年年底买千元机,这四款用三五年没问题,十二月购机必看
- 耳机|高性能“办公”利器,高端办公新体验
- iphone13|iPhone13 缺货问题得到改善,发货时间变快,第三方优惠将更大