Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Yazılımda Performans


Soris

Öne çıkan mesajlar

Selamlar. Forumda baya bilgili yazılımcı arkadaşlar var. Sormak istediğim şu:

Bazı programlarda arayüz bariz hızlı oluyor mesela Google Talk, Google Chrome mesela QT Creator. Bunun sebebi bu programların kodlandıkları dil mi kullandıkları framework mü yoksa programcıların yaptığı bir takım optimizasyon işlemleri ile mi alakalı?

Yani bunu her kullanıcı farkedebilir. Menüler inanılmaz hızlı oluyor. Öğeler arasında hızlıca gidip gelebiliyoruz bir arayüz içinde. RAM kullanımı ile mi alakalı? Neden hızlı çalışıyor bu programlar :)
Link to comment
Sosyal ağlarda paylaş

  • Genel Yönetici
Çok benzerler Qt ve Gtk. Windows altında fark var ama. GTK bir sürü Windows'da olmayan bağımlılık yüklüyor Windows'a, Qt yapmıyor. Düşük ram'li makinelerde fark olabilir belki Qt açısından ama onun dışında pek bir performans farkları yok kit olarak. Yazılıma bağlıdır. Qt'nin dökümanları çok daha iyi bence, ondan kaynaklı olabilir o da.
Link to comment
Sosyal ağlarda paylaş

Özellikleri doğru kullanmakla alakalı bunlar. Built-in fonksiyonları kullanmak çoğu zaman daha hızlı sonuçlar verir.
C# dan alakasız ama basit bi örnek vereyim mesela:

String str = "";
for(int i = 0; i < 100000; i++)
{
str += i.ToString();
}
Console.WriteLine(str);

ile

StringBuilder str = new StringBuilder();
for(int i = 0; i < 100000; i++)
{
str.Append(i);
}
Console.WriteLine(str.ToString());


kodların ikisi de aynı işlemi ve sonucu verse de 2. yazım şekli aşırı hızlı bir şekilde sonuçlanacaktır...
Link to comment
Sosyal ağlarda paylaş

Oce4n bunun sebebi nedir tam olarak?

Birde benim dediğim sanırım daha farklı birşey veri ile alakalı bir hızdan bahsetmiyorum. Menüler çok hızlı gözle görülür bir şekilde bariz hız farkı var klasik programlar arasında. C++ ile yazılmış ondan olabilirmi acaba?

Birde Widget toolkit tam olarak ne demektir biraz anlatabilirmi bilgisi olan arkadaşlar :)
Link to comment
Sosyal ağlarda paylaş

Genellikle programı yazarken kullanılan kütüphanelerle alakalı. Adam bi kütüphanenin sadece belli bi kısmına ihtiyaç duyar, ama kütüphane o kadar modüler tasarlanmamıştır, tamamını projeye eklemeni gerektirir, program şişer gereksiz yere.
Tabii kodlama yönteminin de etkisi büyük, kaydedilebilir veriyle çalışan bi programın veri kaydını real-time mı toplu mu yapacağından tut, bellekteki bilgilerin ekranlar arası paylaşım yöntemine kadar her şey farkettirir.
Link to comment
Sosyal ağlarda paylaş

Hmmm anladımda mesela spesifik olarak soruyorum mesela QT Creator çok hızlı çalışıyor yani menüler arasında geçişi olsun yeni bir öğe yüklenmesi olsun. Gözle görülebilir bir farkı var. Yani sizce bunun sebebi ne olabilir? Rica ediyorum biri kursun baksın ya lütfen. Niye bu kadar hızlı çalışabilir bu program.

Acaba kullanılan dilden mi?
Kodlamasından dolayımı?
Link to comment
Sosyal ağlarda paylaş

Keşke az işlemle yapmak her şeyi çözse.
Her şeyi işlem sayısını kısarak hızlandıramazsın, hızlandırabildiğin durumlarda da bellekten çok yersin http://en.wikipedia.org/wiki/Space%E2%80%93time_tradeoff

Mesela en basitinden, bi sayının asal olup olmadığını bulmak için istersen 2'den başlayıp o sayının bi eksiğine kadar olan tüm sayıları bölüp tam çıkıp çıkmadığına bakarsın; istersen programın başında 2 milyon elemanlı bi true/false bellek alanı tanımlar, 2'den başlayıp tüm sayıların tüm katlarının denk düştüğü bellek alanlarını false edersin, o bellek alanındaki true'ların denk düştüğü sayıları "aha da bu sayı bi asal sayıdır" diye bellekte başka bi yerde saklarsın, ihtiyaç olduğunda o sayı orda mı diye bakarsın vs.
Link to comment
Sosyal ağlarda paylaş

hızlı çalışması ile düzenli-kolay bakım arasında ters orantı var böyle hızlı çalışsın diye hiç sınıf yaratmadan, yardımcı fonksiyonlar kullanmadan falan yazabiliyorsun ama 2 gün sonra sorun çıktığı zaman çözmen o kadar zor oluyor.

mesela örnek vereyim bir değişkene erişirken direkt erişim yerine set ve get methodları yazarsan, kodun stability si artar ama hızı azalır. Zaten ilk olarak düzenli kod yazın eğer gerçekten yavaşlık varsa bunlardan kısmaya başlarsınız diye geçeri.
Link to comment
Sosyal ağlarda paylaş

Alt seviyede sadece istenilen işlemin yapılmasıyla da alakalı biraz.
Mesela (şu yazdıklarımı tamamen atıyorum :D) sen pencerenin büyüklüğünü arttırmak istiyosun. animasyon yapmak amacıyla.
myWindow.Widht = wid++;
şeklinde bişiy yazdın. çalıştırıyosun programını takıla takıla artıyor senin penceren.
ama elalemin penceresine bakıyosun kaymak gibi açılıyor hepsininki.

burada senin yaptığın width++ olayına eventler takılıyordur başka propertyler set ediliyordur bir sürü işlem oluyordur senin arka tarafta göremediğin.

fakat windows'un kendi içinde bir pencere fonksiyonu vardır windows.set_window_with gibi bi fonksiyon mesela. bu fonksiyon assembly seviyesinde sadece pencerenin büyüklüğünü ayarlayacak şekilde yazılmıştır ve dolayısıyla daha hızlı çalışır.
gibi.
Link to comment
Sosyal ağlarda paylaş

örnek ver aquila sfd

ya şimdi complier yapısından dolayı performans farklı olabilir belki
nası java codebyte kullanıyor, c++ kodları direk makine diline dönüşüyor, böyle olunca teoride java daha yavaş çalışıo denebilir.

ama ben hiç farketmedim swing qt'ye göre yavaş çalışsın. yapınca hepsi aynı çalışıo sfd
Link to comment
Sosyal ağlarda paylaş

  • Genel Yönetici
Low-level, high-level, interpreted, compiled olayı temel olarak. Go go wikipedia.

Senin ilk soruna göre, Qt eskiden gcc 4.4 kullanıyordu, Gtk daha güncel bir versiyon kullanıyordu ve daha verimli çalışıyordu. Bir sürü şey var.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...