Vì vậy, ứng dụng Rails của bạn đang chiếm rất nhiều RAM. Cái nào là mới? Nhưng có lẽ đây không chỉ là cách mọi thứ diễn ra. Có lẽ dấu chân bộ nhớ của ứng dụng của bạn đang được mở rộng bởi một hoặc nhiều viên ngọc bị phình ra.
Gần đây tôi tình cờ xem được một dự án rất hay của Richard Schneeman. Nó được gọi là trật đường ray và là một tập hợp các công cụ đo điểm chuẩn tự động. Đây là repo github.
Tất cả những gì bạn cần làm là thêm nó vào gemfile của bạn như sau:
gem 'derailed', group: :development
gem "stackprof", group: :development
Sau đó, bạn có thể xem chính xác dung lượng bộ nhớ mà mỗi viên ngọc của bạn yêu cầu tại thời điểm biên dịch:
Sử dụng lệnh pack:mem để xem mỗi viên ngọc của bạn sử dụng bao nhiêu ram tại thời điểm biên dịch
Bạn cũng có thể xem có bao nhiêu đối tượng được phân bổ bởi đá quý của bạn tại thời điểm tải.
Sử dụng gói:đối tượng để xem thông tin về phân bổ đối tượng tại thời điểm tải
Thậm chí còn có các công cụ để đo mức sử dụng bộ nhớ khi ứng dụng của bạn chạy. Tôi chưa có cơ hội để kiểm tra những điều này một cách cá nhân, vì bạn phải có thể chạy ứng dụng của mình ở chế độ sản xuất trên máy tính phát triển của bạn.