SuperAPI AI 工具集

performance

通用与其它

查看项目

更新于 10-15 20:05

技能介绍

用途:该技能用于回答 Ruby 性能、优化、性能分析(profiling)、基准测试(benchmarking)、内存、垃圾回收(GC)等问题,指导在优化前先测量并定位瓶颈。

主要能力:

  • 基准测试:使用 benchmark-ips 对比实现并给出统计显著性结果,例如 flat_map 与 map + flatten 的对比。
  • CPU 性能分析:使用 stackprof 以 :cpu 模式运行并输出 dump,可用 stackprof tmp/stackprof.dump --text 或 --method 'YourClass#method' 查看结果。
  • 内存分析:使用 memory_profiler 的 MemoryProfiler.report 与 pretty_print,查看分配对象、保留对象及按 gem/文件/位置的内存分布。
  • 内存优化:减少中间对象、使用就地修改、frozen_string_literal、符号与字符串的取舍、惰性枚举(lazy)、对象池。
  • 算法优化:选择合适数据结构(Set、Hash 的 O(1) 查找)、避免嵌套迭代造成的 N+1、记忆化(memoization)。
  • GC:查看 GC.stat、手动 GC.start、基准测试中临时 GC.disable/GC.enable、减少短生命周期对象、通过环境变量调优(如 RUBY_GC_HEAP_INIT_SLOTS、RUBY_GC_MALLOC_LIMIT、RUBY_GC_HEAP_GROWTH_FACTOR)。
  • 并发:I/O 用线程池(concurrent-ruby)、CPU 用 Ractor、I/O 用 async。
  • 常见优化:字符串拼接、数组方法(any?/all?/find)、Hash 的 fetch/transform/merge!。

使用方式:按需引入对应 gem 并运行示例代码;性能分析结果通过命令行查看。

适用场景:Ruby 应用性能排查、基准对比、内存与 GC 调优、并发模型选择。

限制:GC 调优数值需基于自身应用测量后调整,避免盲目照搬;GC.disable 不应用于生产;资料未提供具体版本、平台或收费信息。