Turkhackteam.net/org - Turkish Hacking & Security Platform  
Geri git   Turkhackteam.net/org - Turkish Hacking & Security Platform >
Programlama
> Java

Java Object Oriented Programming temeline dayanan, çok işlevli, step by step işleyen dilin dökümanlarının paylaşım alanı.



Java Yavaş mı?

Java

Yeni Konu aç Cevapla
 
Seçenekler
Alt 03-12-2017 13:15   #1
  • Binbaşı
  • Üye Bilgileri
Üyelik tarihi
07/2015
Nereden
Öz Yurdunda
Yaş
19
Mesajlar
Konular


  
Java Yavaş mı?





Java, sıklıkla “yavaş” olarak nitelenen bir dil. Hatta pek çok zaman bu durum bir suçlama ve geyik malzemesi olarak da kullanılıyor. Garip olan şu ki bu kanıya sahip olanlar, bu durumu gerçekmiş gibi sunuyorlar. Aslında bunu iddia edenlerin temelde iyi dayanağı var:

Java native çalışmadığı için yavaş olması da zaten normaldir, beklenendir. Bu yüzden Java hiç bir zaman C/C++’ın hızına erişemez.
Biz Java ile uygulama geliştirdik ve yavaş çalıştı/çalışıyor.
Java is Slow

Aslında analitik olarak gidip, öncelikle yavaş ya da hızlı olmak nedir ona bakmak gereklidir. Uygulamalarda farklı şeylerin performanslarından bahsedebiliriz:

Ayağa kalkma zamanı (startup time), bir uygulamanın başladıktan sonra cevap verecek hale gelinceye kadar geçen zamanıdır.

Harcanan bellek (memory footprint), uygulamanın bellek tüketimi demektir.
Cevap verme süresi (response time, responsiveness), uygulamanın kullanıcıların uygulama üzerinde yaptıkları bilgi girişi, tıklama vs. gibi hareketlerine cevap veriş süresidir.
İş üretme (throughput), uygulamanın birim zamanda çıkardığı iştir.

Ölçeklenirlik (scalability), uygulamanın yükü arttıkça davranışının değişmesini temsil eden özelliktir.

Bir de şu soruyu sormak lazım: Yavaş ya da hızlı olan nedir? Yani dilin mi hızlı ya da yavaş olmasından bahsedebiliriz yoksa uygulamanın mı? Buna şöyle bir soruyla cevap verelim: Aşağıdakilerden hangisinin performans yönünden kalitesi, bir uygulamanın yavaş ya da hızlı olmasını daha çok belirler?

Dilin kendisi
Yazılımın mimarisi
Üzerinde çalışılan donanım
Yazılım mimarisi, uygulamaların performanslarını belirlemede muhtemelen en fazla etkiye sahip olandır. Bu amaçla Facebook gibi yüksek ölçeklenirlik gerektiren uygulamaların mimarilerini inceleyebilirsiniz. Ayrıca konu ile ilgili buradaki yazıma bakabilirsiniz.

Performans Çalışmaları

Performans ile ilgili çalışmalar genelde 3 başlık altında ele alınır:

Monitoring (gözlemleme): Sistemin davranışını, ona müdahele etmeden ve yük getirmeyecek şekilde, gözlemlemektir. Sistemin tamamı için söz konusudur ve daha çok önleyici amaçlar için kullanılır.

Profiling (tarama): Az ya da çok müdahele ederek ve sistemin davranışı ile ilgili veri toplamaktır. Muhtemelen sistemin sıkıntılı olduğu düşünülen tarafları için yapılır ve problem olduğunda başvurulur. Sampling (örnekleme) adında daha az müdahele eden şekli de vardır.
Tuning (ince ayar): Performansı iyileştirmek amacıyla, kodda, ortamda vs. yapılan ince ayar çalışmalarıdır. Tuning, genelde sistemin bütününden ziyade belli alanlara odaklıdır.

Örneğin:
Uygulamanın veri tabanı iletişimi ve sorguların (SQL) iyileştirilmesi,
Kullanıcı arayüzlerinin inceltilmesi,
Sistemin ayağa kalkarken yaptığı işlerin azaltılması,
Sistemin XML işlemesinin iyileştirilmesi,
Tuning doğası gereği farklı yerlere ve şekillerde uygulanabilir. Bir kaç örnek vermek gerekirse:

Bazen sadece algoritmiktir: Kullanılan algoritma iyileştirilir ya da değiştirilir.

Bazen belli kod parçalarına (aspect) uygulanır: Oturuma konan nesnelerin azaltılması (örneğin HttpSession temizlemesi), veri tabanı iletişimi için Statement yerine PreparedStatement kullanılması, loglama, sorgulama (querying) ya da transaction performansının iyileştirilmesi gibi işlemler bu cinstendir.

Bazen teknolojiye uygulanır: JSF 1.2’yi JSF 2 ile değiştirmek ya da Java’in sürümünü arttırıp örneğin 1.5’ten 1.8’e çıkarmak gibi.

Bazen yazılımın mimarisine uygulanır: Cache kullanımına geçilmesi, nesne havuzu (object pool) kullanılması ya da yazılımın topolojisinde değişiklik yapılması gibi değişiklikler bu cinsten iyileştirmelerdir. Mimari iyileştirmelerin hem maliyeti yüksektir hem de yüksek risklidirler ama iyi tespit edilip uygulandıklarında ciddi ilerlemeler sağlarlar.

Bazen veriye uygulanır: Veri tabanındaki verinin denormalize edilmesi ya da veri tabanlarının sağladığı optimizasyon imkanlarının kullanılması gibi.
Bazen donanıma uygulanır: Daha güçlü donanıma geçilmesi ya da kısmi yapılan RAM artışı gibi iyileştirmelerdir.

Bazen JVM’e uygulanır: Java’ya özel olarak JVM’in davranışını değiştirmek amacıyla pek çok parametre kullanılır. Bu parametrelerin yüksek performans sağlaması amacıyla optimum noktaya getirilmesi, JVM tuning olarak adlandırılır.

Tuning yapmadan önce, neyin problemli olduğu ve ne şekilde iyileştirilmesi gerektiği kesinleştirilmelidir aksi taktirde daha kötü durumla düşmek isten bile değildir. Bu noktada Donald Knuth’ın sözünü hatırlamakta fayda vardır:

Premature optimization is the root of all evil.

Ayrıca tuning yapılmadan önce, tuning ile kazanılacak performans artışının ne olacağı da kestirilmelidir. Diğer bir deyişle atılan taş, ürkütülen kurbağaya değmelidir.
    
 Offline  
 
Alıntı ile Cevapla
Cevapla

Bookmarks

Seçenekler


Bilgilendirme Turkhackteam.net/org
Sitemizde yer alan konular üyelerimiz tarafından paylaşılmaktadır.
Bu konular yasalara uygunluk ve telif hakkı konusunda yönetimimiz tarafından kontrol edilse de, gözden kaçabilen içerikler yer alabilmektedir.
Bu tür konuları turkhackteamiletisim [at] gmail.com mail adresimize bildirebilirsiniz, konular hakkında en kısa sürede gerekli işlemler yapılacaktır.
Please Report Abuse, DMCA, Harassment, Scamming, Warez, Crack, Divx, Mp3 or any Illegal Activity to turkhackteamiletisim [at] gmail.com

Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz.
Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.



         

Powered by vBulletin® Copyright ©2000 - 2018

TSK Mehmetçik Vakfı

Türk Polis Teşkilatını Güçlendirme Vakfı

Google+
film izle

wau

Search Engine Friendly URLs by vBSEO 3.6.0 ©2011, Crawlability, Inc.