Ruby优化的一些方式

一、动态性和平衡

动态语言才是语言进化的方向,体现了程序的自动化。动态型才是在为人服务,为工程师服务。

所以个人倾向于——极致的动态语言技术+有针对性的瓶颈优化

这个组合来平衡效率和性能

二、一些优化的思路

JIT思路

  1. 开启自动JIT
  2. 手动指定JIT —— 这个灵感来自于Python的JIT。手动的指定性能瓶颈处编译为JIT

多线程+模型

  1. 使用无GIL的解释器、促进代码逻辑的无竞争,充分使用多线程
  2. Ractor模型

EventLoop模型

  1. 非阻塞模型 实现比如 Eventmachine

多进程

  1. progress+fork 把调度丢给操作系统

手动控制流程

  1. Fiber

使用C底层,替换性能瓶颈

1.比如 HTTP Server Agoo性能和Go相当

使用FFI调用外部程序

1.比如Go\Rust\C 书写瓶颈部分,Ruby调用提升性能

同等语法 编译型

  1. Cystal
  2. https://amberframework.org/

优化

  1. 根据Ruby动态的数据类型特点,针对一些算法进行优化

Mark24

Everything can Mix.