SORU
2 EYLÜL 2008, Salı


Java nasıl bir Bellek Sızıntısı bulmak için

Nasıl Java (örneğin, JHat kullanarak) bellek sızıntısı buluyor musunuz? JHat kadar yığın dökümü temel bir bakmak yüklemek için denedim. Ancak, kök başvuru (ref) bulmak mümkün olmam gerekiyor nasıl ya da adı her ne ise anlamıyorum. Temelde, hash tablosu girdilerini birkaç yüz megabayt olduğunu söyleyebilirim ([java.açıklama.Giriş falan HashMap$gibi), ama haritalar her yerde kullanılır... orada büyük haritalar aramak için bir yol, ya da belki de büyük nesne ağaçların genel köklerini bulmak?

[Düzenle] Tamam, şimdiye kadar cevapları okudum ama sadece ucuz bir piç olduğumu söyle (JProfiler ödemek için daha JHat kullanmayı öğrenme daha fazla ilgi duyuyorum anlamına gelir). Ayrıca, JHat bu FIRSATLAR bir parçası olduğu için her zaman mevcuttur. Tabii JHat ama kaba kuvvet ile yol yoktur, ama bu durum böyle olabilir inanamıyorum.

Ayrıca, aslında (ekleme günlüğü . değiştirmek mümkün olacak sanmıyorum ^em>tümboyutları göster) ve bana sızıntıyı fark etmek için yeterli bir süre için çalıştırın.

CEVAP
2 EYLÜL 2008, Salı


Java'da bellek sızıntısı bulmak için aşağıdaki yaklaşımı kullanın. Büyük bir başarı ile jProfiler kullandım, ama grafik yetenekleri ile herhangi bir özel araç (farklar grafik şeklinde analiz etmek daha kolaydır) işe yarayacağını düşünüyorum.

  1. Uygulama ve o kadar "kararlı" devlet, tüm başlatma tamamlandı ve uygulama boşta. ne zaman başlayacak
  2. Bu işlem, bir bellek sızıntısı birkaç kez, DB ile ilgili herhangi bir önbellek başlatma kontrol altına almak için Üretim şüphelenilen çalıştırın.
  3. GC çalıştırın ve bellek anlık görüntü alabilir.
  4. İşlemi yeniden çalıştırın. Operasyonun karmaşıklığı ve işlem işlenen verilerin boyutlarına bağlı olarak birçok kez çeşitli çalıştırmak gerekebilir.
  5. GC çalıştırın ve bellek anlık görüntü alabilir.
  6. 2 fotoğraf için bir diff çalıştırın ve çözümle.

Temelde analizinden en büyük olumlu fark ile başlamalı, tür ki nesne ve bu ekstra nesneleri bellekte sopa neden olur.

İstekleri işleyen web uygulamaları çeşitli konuları da analiz daha karışık hale gelir, ama yine de genel yaklaşım hala geçerlidir.

Projeler özellikle uygulamaların bellek ayak izi ve birkaç uygulama ile bu genel yaklaşım azaltmaya yönelik çok sayıda özel düzenlemeler ve hile her zaman işe girdim.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Simon Hayter

    Simon Hayter

    20 HAZİRAN 2010
  • wwjoshdew

    wwjoshdew

    1 AĞUSTOS 2007
  • xXGAMERrs_Xx

    xXGAMERrs_Xx

    31 Temmuz 2014