การ optimize Ruby เริ่มต้นด้วยการ profile เพื่อหาคอขวด (bottleneck) ที่แท้จริง — ไม่เคยเดา Ruby ค่อนข้างช้า (เป็น interpreted, dynamic) ดังนั้นการ optimize จึงมุ่งเน้นที่อัลกอริทึมที่ดีกว่า, การลดการ allocate อ็อบเจกต์, การแก้ไข database query (ตัวการที่พบบ่อยใน Rails) และการ caching
profile ก่อน
.bm { || x.report() { expensive_method } }
