Düşünce Azığı: Java Performance

“Düşünce azığı” yazıları (bunun için “food for thought”tan esinlendim) bilgi ve fikir dünyamızı besleyen en temel kaynak olan kitaplarla ilgili olacak. İlk kitap ise geçen senenin sonunda çıkan “Java Performance” kitabı.

[openbook booknumber=”0137142528″]

Malum, Java projelerinde, aslında doğru düzgün yapılmış hemen her nesne-merkezli dil kullanılan projede, nesneler, çalışma zamanında umulmadık performans ve ölçeklenirlik (scalablity) sorunlarına yol açar. Bu durumun Java projelerinde daha da problem hale gelmesinin en temel sebebi, Java’nın bir sanal ortamda yani JVM’de çalışması. Kurumsal projelerde, kullanıcı sayısı ve dolayısıyla açılan oturum sayısı, veri tabanından getirilen nesneler, bunalrın hayat döngüleri ve temizlenmesi, JVM’in dış dünya ile ilişkisi vb. noktalar hep sıkıntı yaratır. Bu durumu çözmenin ya da baştan engellemenin en temel yolu JVM’i iyi bilmekten geçiyor. Benim gözlemlediğim, ülkemizdeki Java’cıların, bu konularda ya hiç ya da çok az farkındalık sahibi oldukları yönünde. Çok az Java’cı, örneğin HotSpot JVM’inin server ve client tipleri arasındaki farkı bilir. Çöp toplama (garbage collection) algoritmaları hakkında bilgi sahibi olan pek Javacı bulamazsınız mesela. Bu ve benzeri halleri ben “ama benim makinamda sorunsuz çalışıyor” şeklinde bir cümleyle ifade etmeyi tercih ediyorum. Bu problemli bir durum çünkü bence her Java EE projesinde bunlardan haberdar en az bir kişi olmalı ve bu haberdarlık durumu herkese yayılmalı. Performans ve ölçeklenirlik testlerinin yapılmadığı projelerde böyle bir farkındalığın olmamasına şaşmamalı ama bu durumda da problem hakikatten büyük demektir. Çünkü bu kitaptan da anlaşılacağı üzere, sistem çapında bir performans ve ölçeklenirlik farkındalığı yoksa ve gerekli çalışmalar da zamanında yapılmamışsa, yani mimari yapı, projenin en başından itibaren uygun olarak kurgulanmamışsa, sistemi süper bilgisayar üzerine kursanız da problemi çözemezsiniz.

Kitap kalın, 720 sayfa ve James Gossling tarafından bir önsöz ile başlıyor. Kitabı konu başlıkları şunlar:

  1. Strategies, Approaches, and Methodologies
  2. Operating System Performance Monitoring
  3. JVM Overview
  4. JVM Performance Monitoring
  5. Java Application Profiling
  6. Java Application Profiling Tips and Tricks
  7. Tuning the JVM Step by Step
  8. Benchmarking Java Applications
  9. Benchmarking Multitiered Applications
  10. Web Application Performance
  11. Web Services Performance
  12. Java Persistence and Enterprise Beans Performance

Ayrıca kitabın sonunda HotSpot JVM’inin parametreleri hakkında bilgi veriliyor.

Kitabın konularından da anlaşılacağı gibi kitapta hem metodoloji hem detay bir arada bulunuyor.

Bu açıdan bakıldığında “her Javacının okuması gereken kitap” diyesim geliyor ama Javacıların yılda ortalama okudukları kitap sayısı nedir diye düşününce pek de gerçekçi bulmuyorum kendimi. Ama en azından tecrübeli, bir grup programcıya liderlik eden, Java EE projelerinde mimar rolünde bulunan, tuning, performans ve ölçeklenirlik vb. çalışmaları yapan kişilerin okuması gereken kitaplardan olduğunu söyleyebilirim.

Bu arada kitap Internette PDF ve epub formatında bulunuyor.

Bu yazı toplam 859 defa görüntülenmiştir.