38
JVM Tuning & Monitoring JVM Languages IDE Hazırlayan : Halil İbrahim ÇELENLİ

JVM Tuning and Monitoring, JVM Languages, IDE

Embed Size (px)

Citation preview

Page 1: JVM Tuning and Monitoring, JVM Languages, IDE

JVM Tuning & MonitoringJVM Languages

IDEHazırlayan : Halil İbrahim ÇELENLİ

Page 2: JVM Tuning and Monitoring, JVM Languages, IDE

JVM(java virtual machine)• java programlarını çalıştıran sanal bir makinedir.

Page 3: JVM Tuning and Monitoring, JVM Languages, IDE

1) JVM Tuning & Monitoring

• Profiling

Page 4: JVM Tuning and Monitoring, JVM Languages, IDE

1.1 VisualVM

• Ücretsiz ve etkili bir profiling aracı. Netbeans’in içinde gelen profiling  aracı ile özellikleri hemen hemen aynı. Kısacası Netbeans indirmeden de direk VisualVM indirip kullanmaya başlayabilirsiniz. • Detay : https://www.youtube.com/watch?v=pRwvx4QpUfo

Page 5: JVM Tuning and Monitoring, JVM Languages, IDE

1.2 YourKit

• Hem Java hem de .NET için profiling ürünleri mevcut olan bir araçtır. Uygulamanın çalışmasına yük getirmeden çalışabiliyor, rahat ve kolaydır. Hemen hemen tüm baskın kod editörleri (Intellij, eclipse ve netbeans) ile entegre bir şekilde çalışabilmektedir. CPU profiling, bellek kaçakları, özellikleri mevcut ve ücretlidir.• Detay : https://www.yourkit.com/docs/

Page 6: JVM Tuning and Monitoring, JVM Languages, IDE
Page 7: JVM Tuning and Monitoring, JVM Languages, IDE

1.3 Netbeans Profiler• Netbeans ile birlikte gelen bir profiling aracı ve ücretsiz. Bu profiling aracı işletim sisteminde ki Java uygulamalarını bularak kolayca bağlanabiliyor. • Detay : https://www.youtube.com/watch?v=DI4EFkzqCCg

Page 8: JVM Tuning and Monitoring, JVM Languages, IDE
Page 9: JVM Tuning and Monitoring, JVM Languages, IDE

1.4 JProfiler• Belli bir gün sayısı kadar demo sürümünü kullanmanıza izin veren bir araçtır. Uygulama içerisindeki en ince performans kayıp noktalarını gözler önüne seriyor. Bellek sızıntılarını da görmenizi sağlar. Ayrıca Intellij ile tam bir entegrasyonu mevcuttur.• Detay : https://www.youtube.com/watch?v=X5iPhGIswlI&t=2s

Page 10: JVM Tuning and Monitoring, JVM Languages, IDE
Page 11: JVM Tuning and Monitoring, JVM Languages, IDE

1.5 Memory Analyzer(MAT)• Eclipse ile beraber kullanabileceğiniz bir profiling aracı. Hızlı ve zengin özelliklere sahiptir. Hafıza kaçaklarını ve çöp toplayıcının (garbage collector) hareketlerini direk gözlemleyebilirsiniz. Elbette CPU incelemesi olmaması büyük bir eksiklik. Ücretsiz olarak sunulmaktadır.• Detay : https://vimeo.com/21356498

Page 12: JVM Tuning and Monitoring, JVM Languages, IDE
Page 13: JVM Tuning and Monitoring, JVM Languages, IDE

1.6 Java Mission Control(JMC)• Java Mission Control, Java uygulamalarınızın yönetimini, izlenmesini ve sorun anında problem tespitini yapabileceğiniz bir Oracle uygulamasıdır. • Detay : http://www.middlewareblog.com/java-mission-control-jmc/

Page 14: JVM Tuning and Monitoring, JVM Languages, IDE
Page 15: JVM Tuning and Monitoring, JVM Languages, IDE

1.7 Java Flight Recorder• Uygulamaların yönetimleriniz izlemeyi sağlayan bir profil oluşturma aracıdır. Lisanslıdır ayrıca Java Mission Control’e entegre edilerek çalışır.• Detaylar : https://www.youtube.com/watch?v=azshjd5Vsv0

Page 16: JVM Tuning and Monitoring, JVM Languages, IDE
Page 17: JVM Tuning and Monitoring, JVM Languages, IDE

1.8 AppPerfect• Profilleme, Yöntem Yürütme, Nesne Oluşturma ve Çöp Toplama gibi çeşitli JVM düzey parametrelerini izleme süreci içindir. Hedef uygulama yürütülmesinin ve kaynak kullanımının daha detaylı bir görünümünü sağlamaktadır.• Detay : https://www.youtube.com/watch?v=IXNi5d-HAY8

Page 18: JVM Tuning and Monitoring, JVM Languages, IDE
Page 19: JVM Tuning and Monitoring, JVM Languages, IDE

2) JVM Languages

Page 20: JVM Tuning and Monitoring, JVM Languages, IDE

2.1 Scala• Scala hem nesne yönemlimli hem de fonksiyonel programlama tekniklerini içeren bir programlama dilidir. Scalanın kendi derleyicisi olmasına rağmen java Byte-Code üretip JVM üzerinde koşturabiliyorsunuz. Hızlı ve pratiktir.• Detay : http://scala-turkiye.github.io/scala-tr/20130406-oylg-neden-scala.html#(1)• Karşılaştırma : https://www.youtube.com/watch?v=PKc5IwHG68k

Page 21: JVM Tuning and Monitoring, JVM Languages, IDE
Page 22: JVM Tuning and Monitoring, JVM Languages, IDE

2.2 Groovy• Java platformu üzerinde çalışan dinamik tipli,imperative,nesne odaklı(object oriented) bir programlama dilidir.• Groovy dilinin Java dilinden farklı bir takım özellikleri bulunmaktadır. Java dilinden farklı olarak şu özelliklere sahiptir: -- Statik Tipler ve Dinamik Tipler -- List,Map,Array,Regular Expression,Range tipleri için yerel syntax desteği -- Closurelar• Detay : http://www.javablog.org/28-groovy-script-dili

Page 23: JVM Tuning and Monitoring, JVM Languages, IDE
Page 24: JVM Tuning and Monitoring, JVM Languages, IDE

2.3 Clojure• Fonksiyonel bir dil ve Lisp ailesinin son üyesidir. Yazılan kodlar JVM üzerinde çalışacak şekilde java byte koduna derlenir, bu sayede javanın bütün kütüphanelerini kullanabilir.-- Lisp lehçesi olması-- Fonksiyonel programlamanın iyi yönlerini alması-- Thread-safe olması-- Güçlü ve kolay kullanılan paralel programlama özellikleri olması-- Büyük ve küçük ölçekli projelere uygun olması Detay : http://www.halitalptekin.com/clojure-notlari-1.html

Page 25: JVM Tuning and Monitoring, JVM Languages, IDE
Page 26: JVM Tuning and Monitoring, JVM Languages, IDE

3) IDE (Integrated Development Environment)

Java için 18 adet geliştirme ortamı mevcuttur. (Kaynak : https://en.wikibooks.org/wiki/Java_Programming/Java_IDEs)

Page 27: JVM Tuning and Monitoring, JVM Languages, IDE

3.1 Eclipse • Açık kaynak kodlu özgür tümleşik ve ücretsiz geliştirme ortamıdır.• Yapılan araştırmalara göre en çok kullanılan geliştirme ortamıdır.• Swing’e alternatif olarak geliştirilen SWT adlı gösterim sistemi vardır. Swing'den en büyük farkı çalıştığı işletim sisteminin grafik kütüphanesi ve komutlarını kullanmasıdır. • JDK desteği ve eğitimleri orta düzeyindedir.• Eklentiler ile insanları biraz boğabiliyor. Tabiri caizse esnek ama çok akıllı değil.

Page 28: JVM Tuning and Monitoring, JVM Languages, IDE
Page 29: JVM Tuning and Monitoring, JVM Languages, IDE

3.2 Netbeans• Açık kaynak kodlu özgür tümleşik ve ücretsiz geliştirme ortamıdır.• Temel gösterim sistemi swing olarak adlandırılır.• JDK desteği ve eğitimleri eclipse oranla daha iyidir.(Arkada oracle var sonuçta)• Sağlam bir maven desteği vardır , yapılandırma ayarlarıyla boğuşmazsın. • Tabiri caizse Kullanıcı dostu , az yapılandırmalı ve çok esnek değildir.

Page 30: JVM Tuning and Monitoring, JVM Languages, IDE
Page 31: JVM Tuning and Monitoring, JVM Languages, IDE

3.3 IntelliJ IDEA

• Java’da bilgisayar yazılımı geliştirmek için kullanılan tümleşik ve ücretli geliştirme ortamıdır.• Görünüm ve kolay kullanımı ile işlemlerinizi hızlı yapabilirsiniz.• Projenizin detaylarına Eclipse kadar giremeyebilirsiniz.• Android geliştirme için önerilen ortam olan Android Studio, IntelliJ'yi temel almaktadır. 

Page 32: JVM Tuning and Monitoring, JVM Languages, IDE
Page 33: JVM Tuning and Monitoring, JVM Languages, IDE

3.4 Spring Tool Suite• Spring uygularınızı geliştirmeyi sağlayan açık kaynak kodlu ücretsiz tümleşik geliştirme ortamıdır.• EJB’lere rakip olarak çıkmıştır.(Temelde Spring çıkmıştır.)• Kendine özel pratik yapıları vardır.(Spring sayesinde)• Özel eğitim ve danışmanlıkları vardır.Detay : https://www.youtube.com/watch?v=ccPZLZxYe_0

Page 34: JVM Tuning and Monitoring, JVM Languages, IDE
Page 35: JVM Tuning and Monitoring, JVM Languages, IDE

3.5 JDeveloper• Oracle’ın uygulama geliştirme ortamı sağlayan ücretsiz yazılım aracıdır.• Genellikle oracle destekli projelerde kullanılır.• Yazılan kodun hızlı bir şekilde debug edilmesini ve uygulama sunucusuna taşınma işlemini kolaylaştırmaktadır.• Detay : http://www.oracle.com/technetwork/developer-tools/jdev/documentation/index.html

Page 36: JVM Tuning and Monitoring, JVM Languages, IDE
Page 37: JVM Tuning and Monitoring, JVM Languages, IDE

Kaynaklar

• https://www.wikipedia.org/• http://www.javaturk.org/• https://kodcu.com/• Diğer kaynaklar slayt içerisinde linkler ile belirtilmiştir.

Page 38: JVM Tuning and Monitoring, JVM Languages, IDE

Dinlediğiniz için teşekkürler.