2013-06-19 44 views
6

Có bất kỳ trường hợp nào mà GC.disable có thể làm giảm hiệu suất không? Có ổn không, miễn là tôi sử dụng RAM thực thay vì bộ nhớ hoán đổi?Bất kỳ sự bất lợi về hiệu suất của GC.disable?

Tôi đang sử dụng MRI của Ruby 2.0, và như xa như tôi có thể nói, đó là 64 bit, và sử dụng một phiên bản 64 bit Ubuntu:

ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux] 

Linux [redacted] 3.2.0-43-generiC#68-Ubuntu SMP Wed May 15 03:33:33 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux 
+1

đoán nó phụ thuộc vào ứng dụng của bạn, bạn nên thực hiện các kiểm tra hiệu suất và hồ sơ bộ nhớ có và không có gc được bật để có cơ sở để đưa ra quyết định – jethroo

Trả lời

1

GC.disable sẽ vô hiệu hóa thu gom rác thải. Các ngôn ngữ như ruby ​​không có cách nào để giải phóng bộ nhớ mà không có bộ sưu tập rác vì không giống như C bạn không gọi một bộ deallocator bộ nhớ theo cách thủ công.

Vì vậy, có, sẽ có một lần truy cập hiệu suất. Cuối cùng, bạn sẽ hết bộ nhớ vì các đối tượng như chuỗi sẽ tiếp tục được tạo và không bao giờ được dọn dẹp. Bạn thậm chí có thể không chịu trách nhiệm khi cơ chế bên trong của các API mà bạn sử dụng có thể tạo ra các đối tượng.

Nếu không có sự hiểu biết tốt hơn về vấn đề này thì thật không may là điều tốt nhất tôi có thể cung cấp.

Các vấn đề liên quan