JVM Tuning and Monitoring, JVM Languages, IDE

Preview:

Citation preview

JVM Tuning & MonitoringJVM Languages

IDEHazırlayan : Halil İbrahim ÇELENLİ

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

1) JVM Tuning & Monitoring

• Profiling

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

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/

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

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

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

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/

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

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

2) JVM Languages

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

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

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

3) IDE (Integrated Development Environment)

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

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.

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.

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. 

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

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

Kaynaklar

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

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