Forum: Diğer Konular RSS
Uygulamanın Gösterdiği Performansı/Hızı Tam Tamına Hesaplayabilmek
İbrahim #1
Üye Eki 2015 tarihinden beri · 156 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Uygulamanın Gösterdiği Performansı/Hızı Tam Tamına Hesaplayabilmek
Selamün Aleyküm;
Buna banzer bir soru sormuştum daha önce fakat bu seferki konum yaptığımız uygulamanın performansını tam tamına sayısal olarak süreyle hesaplamak mümkün müdür?
Yani mesela şöyle bir örnek:
// Java Kodu
// Kodun ne kadar sürede işlediğini milisaniye olarak yazar.
...
long startTime = System.currentTimeMillis();
for (BigInteger i = 2; i <= 2000000; i++)
{
  ...
}
long stopTime = System.currentTimeMillis();
System.out.println(Long.toString(stopTime - startTime) + " Milisaniye sürdü.");
...
Mesela bu kod doğru bir süre verebilir mi? Yani bundan kastım daha ciddi yazılımlarda bu şekilde ne kadar sürede kodlar işlemiş diye hesaplanabilinir mi? Bu şekilde kodun performansının ne derecede olduğunu hesaplayabilir miyiz?
Uygulamamızın performansını hangi araçlarla izleyebiliriz? Yani gözle görülür bir fark bile olmayan uygulama performansını doğru olarak ölçmenin yolu var mı? Teşekkürler!
İbrahim #2
Üye Eki 2015 tarihinden beri · 156 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yani şöyle biraz daha açayım: Hani geliştiriciler diyorlar ya (mesela C++ standart kütüphanelerini belirleyenler) kodları en stabil hale getirdikten sonra (boost kütüphanesi) standarta ekleyeceklermiş. Örnek bu. Peki bunun stabil olup olmadığına nasıl karar verebiliyorlar?
İbrahim #3
Üye Eki 2015 tarihinden beri · 156 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ayrıca C/C++ için olan profiler'lardan hangisini kullanmalıyım? C++ yazılımcıları hangisini en çok kullanıyor? Bunu sormamdaki maksat C++ için ücretli/ücretsiz bir sürü profiler var.
acehreli (Moderatör) #4
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Evet, hız gösterdiğin gibi ölçülebilir ve ölçülüyor.

Başka bir yol da yine söylediğin gibi, profiler kullanmak. Şansımıza profiler'lar dilden bağımsız oluyor. Örneğin, Linux'ta gprof'u kullanabilirsin.

Stabil olduğuna artık hata görülmediğinde karar veriyorlar. Açık kodun en iyi taraflarından birisi: Herkes kullanıyor, farklı yerlerinde hata buluyor, çözüyor ve bildiriyor, vs. sonunda bu hareket duruyor ve kod stabil olmuş oluyor. :)

Ali
İbrahim #5
Üye Eki 2015 tarihinden beri · 156 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Şu an valgrind vs. gibi araçlar kesin sonuç gösteriyor mu? Bir de aralarında fark var mı bunların?
acehreli (Moderatör) #6
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
valgrind, onu son kullandığım çok seneler önce çok yararlı bir araçtı. Biz onu bellek sızıntısı gibi bellek hatalarını yakalama amacıyla kullanmıştık. Belki hız ile ilgili eklentileri de vardır; onu bilmiyorum.

Ali
İbrahim #7
Üye Eki 2015 tarihinden beri · 156 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
O zaman profiler olarak Valgrind seçeyim. Peki bir de statik analizci (static analyzer) varmış. Bununla profiler arasında bir fark var mı? Yani tam olarak ne işe yarıyor? İnternette hakkında Türkçe kaynak yok (static analyzer).
acehreli (Moderatör) #8
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Static analyzer, programı çalışma zamanında değil, doğrudan kaynak kodlarından denetleyen araçtır. (valgrind, çalışma zamanında inceler.) "Şu değişkene şu noktada erişiyorsunuz ama henüz ilklenmemiş olabilir", "şu case değerini biraz daha yukarıda da kullanmıştınız", vs. gibi uyarılar verir.

Evet, onlar da çok yararlı araçlardır. Çalıştığım yerlerde bir kaç kere deneme sürümlerini kullanmıştık. Ne yazık ki, çoğu fazla şüpheci olabiliyordu. Hata olabileceğini söyledikleri noktaları derinlemesine incelediğimizde aslında bir sorun olmadığını görebiliyorduk.

Ali
İbrahim #9
Üye Eki 2015 tarihinden beri · 156 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Teşekkürler. Yani aslında static analyzer kullansak sadece, profiler kullanmaya gerek de kalmıyor (?) Çünkü kaynak koddan okuma yapıyorsa şöyle diyebilir: "Açılan thread program kapatılınca da çalışıyor olabilir" gibi. Doğru mudur?
acehreli (Moderatör) #10
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Aslında hiç ilgileri yok: Birisi programdaki yanlışlıkları gösteriyor, diğeri programın zamanının ne kadarının ne yaparken harcandığını söylüyor.

Ali
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-22, 05:06:27 (UTC -08:00)