Yakut nesnenin kullandığı belleği bulmak için yakutta herhangi bir işlev var mı?
C, sizeof()
işlevine ve PHP'nin memory_get_usage()
işlevine sahiptir. Ruby'nin eşdeğer bir işlevi/yöntemi var mı?Ruby nesne tarafından kullanılan bellek nasıl bulunur?
cevap
Bu streç, ama amacınız bir bellek sızıntısı aramak yerine bireysel nesnelerin boyutunu görmek ise, olduğu gibi object_count(cls)
de görünebilir:
>> ObjectSpace.each_object(Object).count
=> 114629
>> ObjectSpace.each_object(Array).count
=> 10209
vb FWIW, semboller biraz farklıdır: Eğer aracılığıyla sembollerin sayısı elde edebilir:
>> Symbol.all_symbols.count
=> 17878
değil bir sızıntı olup olmadığını öğrenmek için, el, GC çağrı nesnelerinizi saymak, bir süre kodunuzu çalıştırabilir, GC'yi tekrar arayın, sonra herhangi bir nesne sayısının önemli ölçüde büyüdüğünü görün.
Elbette, bu, her bir nesnenin büyüklüğünü, her bir nesnenin boyutunun ne olduğunu belirtmez.
Ayrıca memprof da var, ama bunu henüz kullanmadığımı itiraf ediyorum.
Bu, bellekteki nesnelerin sayısıdır. Orijinal soru, anladığım kadarıyla, tek bir nesnenin bellek kullanımını (bayt cinsinden) nasıl bulacağımı soruyor. – Ariejan
@Ariejan: Tamamen katılıyorum. Bu yüzden dedim ki: "eğer hedefiniz, bir nesnenin boyutunu görmek yerine bir bellek sızıntısı aramaksa ..." –
- 1. r - rJava tarafından kullanılan bellek nasıl temizlenir?
- 2. MKMapView tarafından kullanılan bellek nasıl yayınlanabilir?
- 3. Bellek altında bir işlem tarafından kullanılan bellek os x
- 4. nasıl bir uygulama tarafından kullanılan bellek miktarını almak için
- 5. Elasticsearch'te en çok kullanılan deyimler nasıl bulunur?
- 6. Eksik etiketli nesne nasıl bulunur?
- 7. .NET'te Nesne Bellek Analizi
- 8. Bellek Kaçak Sınıfı/Etkinliği Android'te Nasıl Bulunur
- 9. Meteor Uygulamasında bellek sızıntısı nasıl bulunur
- 10. Phonegap uygulamasında bellek sızıntısı nasıl bulunur
- 11. Uygulama tarafından kullanılan DLL'lerin İsimleri nasıl edinilir
- 12. Fputcsv tarafından kullanılan satır sonlarını nasıl değiştirebilirim?
- 13. .External2() tarafından çağrılan kod nasıl bulunur?
- 14. Nesne id tarafından alın()?
- 15. Paylaşılan barındırmada asp.net önbelleği tarafından kullanılan belleği belirle
- 16. Birçok yeni nesne oluştururken bellek sıkışıyor
- 17. Bir php betiği tarafından kullanılan ne kadar kaynak (işlemci yüzdesi ve bellek)
- 18. Dairesel Nesne ile Ruby Garbarge Koleksiyonu Referanslar
- 19. PowerShell işlevleri tarafından kullanılan Parametre İsimlerini Al
- 20. Facebook tarafından kullanılan IP Alanı listesi
- 21. Android uygulamasında LeakCanary kullanarak bellek sızıntıları nasıl bulunur?
- 22. Ruby neden nesne kimliklerini azalan sırada atayabiliyor?
- 23. SWIG tarafından oluşturulan nesnelerin bellek yönetimi C
- 24. Ruby Class nesne çöp toplama
- 25. Nesne boyutu (dahil olan nesneler dahil) nasıl bulunur?
- 26. TFS projesi tarafından kullanılan işlem şablonunu nasıl görüntüleyebilirim?
- 27. Getirme uzantısı tarafından kullanılan varsayılan taahhüt mesajını nasıl özelleştirebiliriz?
- 28. Build.scala derlenirken SBT tarafından kullanılan scalacOptions nasıl ayarlanır?
- 29. iPython tarafından kullanılan paketleri nasıl yeni sürüme geçiririm?
- 30. Windows Ağ bağdaştırıcısı tarafından kullanılan bağlantı adı nasıl alınır?
Muhtemelen bir kopya: http://stackoverflow.com/questions/3973094/how-to-measure-the-size-of-a-ruby-object – Matt
@Matt - Teşekkürler. –
Merak ediyorum: sorunuzun amacı nedir? Bir nesnenin boyutunu bilmek mi istiyorsunuz, yoksa çok sayıda nesnenin ne kadar hafızaya sahip olduğunu anlamaya çalışıyor musunuz? – Sim