Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kebocoran memori di JDBC4Connection

Duffymo hampir pasti benar. Di masa lalu ketika kami mengalami kebocoran memori, itu SELALU driver MySQL JDBC. Hanya lupa untuk menutup satu ResultSet atau Connection atau Statement kecil di suatu tempat. Saya akhirnya mengaudit seluruh basis kode untuk setiap kali kami menggunakannya untuk menemukan masalah dan memastikan mereka ditutup.

Adapun HashMap, saya juga pernah melihatnya. Saya belum melihat sumbernya tetapi kesan saya adalah bahwa driver MySQL menyimpan baris (setidaknya nilai baris) di HashMaps secara internal.

Membocorkan ResultSets sayangnya mudah. Gagasan tentang sumber daya yang dapat ditutup yang menangani ini sendiri datang di JDK 7 atau 8 benar-benar menarik bagi saya karena alasan ini.

Anda dapat memasukkan kelas shim di suatu tempat (misalnya untuk Koneksi) untuk mencatat setiap sumber daya yang dibuka/ditutup untuk melihat apakah Anda dapat mengetahui letak kebocorannya tanpa langsung membaca semua sumber Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konversi strftime dalam permintaan SQLite ke MySQL

  2. Kesalahan MySQL Hanya ada satu kolom TIMESTAMP dengan CURRENT_TIMESTAMP dalam klausa DEFAULT meskipun saya tidak melakukan kesalahan

  3. Mysql Hitung (*) sebagai Total WHERE Total?

  4. MySQL:mengapa varchar(254) dan bukan varchar(255)?

  5. Kata sandi root mysql homebrew MacOSX