Thread overview
Uygulamanın Gösterdiği Performansı/Hızı Tam Tamına Hesaplayabilmek
Feb 04, 2016
İbrahim
Feb 04, 2016
İbrahim
Feb 04, 2016
İbrahim
Feb 04, 2016
İbrahim
Feb 04, 2016
İbrahim
Feb 04, 2016
İbrahim
February 04, 2016

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!

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 04, 2016

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?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 04, 2016

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.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 04, 2016

Şu an valgrind vs. gibi araçlar kesin sonuç gösteriyor mu? Bir de aralarında fark var mı bunların?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 04, 2016

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).

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 04, 2016

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?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 04, 2016

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

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 04, 2016

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

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 04, 2016

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

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 04, 2016

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

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]