2008-09-20 7 views
6

Sun 1.6 JVM'de (1.6_05) bir bellek sızıntısına neden olan büyük bir uygulama (300K LOC) üzerinde çalışıyorum. Java'yı profillemek sızıntı olmadığını gösterir. JVM'den sızıntının nedenini tespit edebilecek herhangi bir teşhis var mı?
Basit ve izole bir Java test vakası oluşturamadım. JVM'de bir C yığın analizörü kullanarak bunu anlamanın tek yolu var mı?
Uygulama, bir soket havuzu oluşturur ve önemli miktarda ağ G/Ç yapar.Bir Java programının neden olduğu C belleğinde bir sızıntıyı nasıl tespit edersiniz?

cevap

2

Profiler4j gibi bazı profiler, yönetilen ve yönetilmeyen belleği (canlı eğri) gösterebilir. Sonra bir sızıntınız olup olmadığını ve sızıntının meydana gelip gelmediğini görebilirsiniz. Ancak daha fazla bilgi bulamazsınız.

  1. Canlı eğri ile sorunu yalıtmak ve sorunun nedenini bulmak zorunda kadar basit bir testi oluşturabilirsiniz: Bundan sonra

    2 olası çözüm vardır. başlatmak asla sınıf Konu
    1. Örnekleri:
    2. Sen gibi tipik sorunlar için kodunuzu arayın. Eğer bir sisteme yürütmek eğer ben valgrind (http://valgrind.org/) aşk
0

yakın asla

  • ODBC Köprüsü Nesneler atmayın vardır asla
  • Görüntüler veya Grafik, bu destekler. Gerçekten sallanıyor!

  • İlgili konular