Vì vậy, tôi đã có ứng dụng đường ray này với một vấn đề rò rỉ bộ nhớ khủng khiếp. Tôi đang chạy nó trên Heroku, và trong vài ngày qua trong khi tôi đã cố gắng tìm ra những gì trên trái đất đang gây ra nó, tôi đã phải liên tục khởi động lại ứng dụng mỗi 5 giờ hoặc lâu hơn hoặc bộ nhớ vượt quá 512 và ứng dụng của tôi gặp sự cố.Rò rỉ bộ nhớ trong Rails App ... chuỗi cơn ác mộng
Tôi đang sử dụng Oink và tôi không thấy bất kỳ điều gì đáng chú ý với các lớp học được khởi tạo của tôi. Điều duy nhất là với mỗi lần tải trang, bộ nhớ được sử dụng tăng lên. Nó thậm chí không quan trọng trang nào tôi tải, nó dường như là ngẫu nhiên.
Di tích mới cũng không giúp được gì nhiều, vì nó không liên quan đến bất kỳ hành động điều khiển cụ thể nào.
Điều duy nhất tôi có thể tìm thấy là sử dụng ObjectSpace, nó cho thấy một số ENORMOUS của các đối tượng chuỗi trong bộ nhớ, và con số này chỉ phát triển và tăng lên. Tôi đã sử dụng một công cụ nhỏ để ghi lại giá trị của các chuỗi và tất cả đều trống. Không nil ... nhưng khoảng trắng. Ứng dụng sản xuất của tôi thường xuyên có hơn 200.000 đối tượng chuỗi đang được sử dụng.
Có ai có ý tưởng gì về những thứ này có thể đến từ đâu không? Điều này thực sự nhấn mạnh tôi phải ở máy tính của tôi sau mỗi năm giờ để giữ cho trang web của tôi còn sống.
Cảm ơn!
Khó đưa ra lời khuyên cụ thể khác ngoài việc chỉ xóa mã cho đến khi bạn có ví dụ nhỏ nhất có thể hiển thị vấn đề và đăng –
Và chạy nó trên máy chủ thay thế và nhấn nó với yêu cầu CURL liên tục cho đến khi bạn có thể repro. – peterept
lời khuyên: không làm 'string = string1 + string 2', cũng không phải' string + = string1'. Do: 'string << string 1', không có chuỗi bổ sung nào được tạo theo cách này – apneadiving