2013-06-19 33 views
6

GC.disable'un performansı düşürebileceği durumlar var mı? Takas hafızası yerine gerçek RAM kullandığım sürece ne yapmalıyım?GC.disable'ın herhangi bir performans dezavantajı var mı?

Ben MR Ruby 2.0 kullanıyorum ve bildiğim kadarıyla söyleyebilirim, o 64 bit, ve 64 bit Ubuntu kullanıyorsanız:

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

, uygulamanıza bağlı olduğunu tahmin edin, kararınızı karara bağlamak için bazı temel almak için gc etkin ve etkin değilken performans testleri ve bellek profili oluşturmalısınız. – jethroo

cevap

1

GC.disable çöp toplama devre dışı bırakacaktır. Ruby gibi diller, çöp toplama olmadan hafızayı boşaltmanın bir yolu yoktur, çünkü C'den farklı olarak, bir ani bellek ayırıcıyı manuel olarak çağırmazsınız.

Evet, bir performans isabeti olacak. Sonunda, dizeler, oluşturulmaya devam edecek ve asla temizlenmeyecek gibi nesneler olarak hafızanız biter. Kullandığınız API'lerin iç mekaniği nesneler oluşturabileceğinden bile sorumlu bile değilsiniz.

Problemi daha iyi anlamadan maalesef size sunabileceğim en iyisi budur.

İlgili konular