Heap Dump nasıl yapılır?

Şu yazıda Heap Dump nedir, neden ihtiyacımız var gibi sorulara cevap vermiştim.Bu yazıya başlamadan önce göz atmakta fayda var. İki şekilde Heap Dump alma yöntemini inceleyeceğiz. İlki hali hazırda çalışıyor olan bir Java programının Heap Dump ile çıktısını alma yöntemidir. Bunun için Linux’ta terminali açıyoruz. top yazarak Java uygulamamızın sahip olduğu PID değerini öğreniyoruz. Ardından aşağıdaki komutu terminal aracılığıyla çalıştırıyoruz. Komut şunun gibi bir çıktı verecektir; Çıktımıza belirtilen klasörden ulaşabiliriz. Bir diğer yöntem ise bellek dolduğu an JVM’in bizim için bir Heap Dump çıktısı üretmesidir.Bunu da vereceğimiz JVM argümanları ile gerçekleştirebiliriz.Aşağıdaki kodları Eclipse için anlatmak gerekirse Run -> Run Configurations -> Arguments -> VM Arguments kısmına yazıyoruz. Tabi böyle ezbere argüman yazarak ne yaptığımızı anlamadan iş yapmak pek... Devamını oku..

Heap Dump nedir?

Heap Dump’ı açıklamak için öncelikle Heap nedir onu bilmek lazım. Herhangi bir Java sınıfından new operatörü ile bir nesne oluşturulduğunda, bu nesnenin bilgisayarın hafızasında konuşlandırıldığı alana Java Heap adı verilir. Bu heap alanı ise JVM kontrolündedir. Bildiğimiz gibi Java kodlarının çalıştırılabilmesi isin Java Virtual Machine kısaca JVM’e ihtiyacımız var. JVM bizim için heap alanını oluşturur ve Garbage Collector aracılığı ile kontrolünü sağlar. Peki Heap Dump nedir? Heap Dump, heap bölgesinin bir kopyasını bizim için çıktı olarak alma işlemidir. Bu dosyadan heap’te ne kadar nesne yaşıyor,bellek ne kadar kullanılıyor gibi sorulara gerekirse saniye saniye cevap bulabiliyoruz. Yani kısaca bellekte ne var ne yok öğrenebiliyoruz. Güzel öğrendik ama neden böyle birşeye ihtiyaç duyalım ki? Daha ortada Java yokken nesnelerden bir diğer deyişle bellek tahsis edilen her bir değişkenden... Devamını oku..

Fonksiyonlar

Nesneye yönelimli programlama kullanan herkes hiç şüphesiz fonksiyonları kullanmaktadır. Bu da temiz kod yazmamız gerektiğinde bu yapıya büyük önem verir. Bu kurallara göz atalım. Küçük! İlk kuralımız fonksiyonların uzunluğu küçük olmalıdır.İkinci kural ise ondan daha da küçük olmalıdır. Peki ne demek bu? 500 satırlık fonksiyon yazıp ne yazdım be deme demek  Özellikle Github sayesinde devamlı proje inceleyen birisi olarak en çok karşılaşılan hatanın bu olduğunu görüyorum. Bunu bende yaptım tabi ki. Ancak fonksiyonları uzun tutmak hem Tek Sorumluluk Prensibine aykırı olacaktır hem de ileride o kodun bakımını zorlaştıracaktır. Bu nedenle fonksiyonumuz çok büyükse mümkün oldukça küçük fonksiyonlara ayırmalıyız. Peki, ne kadar küçük olmalı? Cevap: Olabildiğince. Tek , iki veya üç satır. Mümkün oldukça küçük tutmaya çalışacağız. Fonksiyonlara isim verirken tek bir işe yönelik verdiğimizde zaten... Devamını oku..

Anlamlı İsimlendirme

30 Ocak-2 Şubat tarihleri arasında Akademik Bilişim 2016 organizasyonunun düzenlediği Temiz Kod kursuna eğitime katılmıştım. Uzun süredir okumayı planladığım fakat bir türlü gerekli motivasyon ve zamanı ayıramadığım Robert C. Martin’in Clean Code kitabını da bu kurs boyunca okudum. Hem kurs notlarımdan hem de kitaptan faydalanarak bir yazı dizisi yazmaya karar verdim. Kısa bir önsözün ardından kitabında 1. konusu olan Meaningful Names yani Anlamlı İsimlendirme’yi anlatalım. Not: Bölüm isimlerini Türkçe’ye çevireceğim.Fakat örnek kodlarda İngilizce kullanmaya devam edeceğim.Bazı şeylerin İngilizce kalması anlam bütünlüğü açısından daha doğru oluyor.   Değişkenler İsimlendirme yaparken mümkün oldukça değişkenin anlamı verilmeli. Yorum satırında belirteceğimize isimlendirme yaptığımız değişken veya metoda o yorumu isim olarak vermeliyiz. int d; // days of year gibi bir kod yerine int... Devamını oku..