Program hızı hakkında ! [Çözüldü]

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ByDeniS
Üye
Mesajlar: 144
Kayıt: 03 Oca 2009 12:24
Konum: My Computer

Program hızı hakkında ! [Çözüldü]

Mesaj gönderen ByDeniS »

Merhaba arkadaşlar cevaplar için öncelikle teşekkür ederim.

Arkadaşlar sanırım benim yaptığım programlar henüz başında olmasına rağmen çok yavaş açılıyorlar (AnaForum unitinde yaklaşık 1000 satır kod var şuanda) açılması 3 5 saniye civarında sürüyor bu açılma işlemini hızlandırabilirmiyim. Hızlandıramazsam açılışta bir loading olayı yapabilirmiyim ?
En son ByDeniS tarafından 19 Ağu 2010 11:52 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
·•· Bilgi Güçtür ! Bu Gücü Hisset ! ·•·
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: Program hızı hakkında !

Mesaj gönderen G.Arkas »

Formun ilk açılı olaylarında (oncreate,onactive,onshow) çok yüklenmeyin.
Resim
Kullanıcı avatarı
ByDeniS
Üye
Mesajlar: 144
Kayıt: 03 Oca 2009 12:24
Konum: My Computer

Re: Program hızı hakkında !

Mesaj gönderen ByDeniS »

G.Arkas yazdı:Formun ilk açılı olaylarında (oncreate,onactive,onshow) çok yüklenmeyin.
Haklısınız bunun bende farkındayım ama create active yada show eventlerinde ayar yükleme işlemleri yapıyorum ve network tabanlı çalışıyorum.

1. Açılşta ini dosyasından 32 satırlık ayarları yükletiyorum (checkbox vs vs checking gibi olaylar ve bunların checking=true olayında gerçekleşen olaylar)
2. Network'taki bilgisayarları tarayıp socket ile sorgulama yolluyorum.

Programı kasmaması için kendim özel procedureler oluşturdum ve create eventine bu procedure'leri koydum procedureleri işleterek tüm yükleme işlemlerini eş zamanlı yapıyorum. Bunun dışında başka ne gibi bir yol izleyebilirimki.
·•· Bilgi Güçtür ! Bu Gücü Hisset ! ·•·
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: Program hızı hakkında !

Mesaj gönderen G.Arkas »

Şöyle yapsanız nasıl olur setup dosyaları gibi bir thread oluşturup açılıştan sonra ekrana bir form getirin ve tarama(network) işlemlerini kullanıcıya bırakın antivirüsler gibi yada bir timer koyun açıldıktan 15/20 saniye sonra işlemler başlasın işlemlerin sonunda da timer i deaktif edin ve programın stabil çalımasını sağlayın

Şunları mutlaka inceleyin

Thread/MultiThread

İyi çalışmalar.
Resim
Kullanıcı avatarı
ByDeniS
Üye
Mesajlar: 144
Kayıt: 03 Oca 2009 12:24
Konum: My Computer

Re: Program hızı hakkında !

Mesaj gönderen ByDeniS »

Güzel diyorsunuzda ikinci metnimdede gelittiğim gibi ayarların yüklemesinde ve network taramasından kullanıyorum, ama ayarları setup dosyası halinde nasıl yüklemem gerekiyor bir ayar açık yada kapalı olarak belirlenmişse açılışta o ayarı kontrol edip sonucuna göre işlem yapıyor. bunu setup dosyaları gibi bir form üzerinde yaptırmam mantıksız geliyor bana yada anlatmak istediğiniz anlayamadım. Network olayına gelince bu olay isteğe bağlı yapma gibi bir şansım yok server client arası iletişim sağlanabilmesi için network taraması açılışta yaptırılması gerekiyor ve belirli timer aralıklarıyla refresh yapılıyor. Açılma hızı dışında bir problem yok bunu başka bir yolla aşma ihtimalim varmı.

Benim aklıma loading olayı geldi eset programın açılıştaki karşılama ekranı gibi !

Cevapbınız için teşekkür ederim.
·•· Bilgi Güçtür ! Bu Gücü Hisset ! ·•·
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Program hızı hakkında !

Mesaj gönderen Battosai »

Network taraması nedir ne işe yarar ? Neden ihtiyaç duydunuz ?
Kullanıcı avatarı
ByDeniS
Üye
Mesajlar: 144
Kayıt: 03 Oca 2009 12:24
Konum: My Computer

Re: Program hızı hakkında !

Mesaj gönderen ByDeniS »

Battosai yazdı:Network taraması nedir ne işe yarar ? Neden ihtiyaç duydunuz ?
Bağlı olduğumuz ağ üzerindeki bilgisayarları tespit ediyor, tespit işlemi bittikten sonra bu bilgisayarlar oluşturduğum bir fonksiyon ile veri yolluyorum. Network işlemi bundan ibaret. Tabi veri yolladığım bilgisayarlar geri dönerse (buda client mevcutsa demek) yeni bir işleme geçiyor ve ayar dosyası yolluyorum işlem devamında (ayar dosyası 32 satırlık bir ini dosyasıdır içerisinde 1 ve 0 lardan oluşan integer ayar değerleri var (true ve false karşılığı))

Network işlemi bundan ibaret ama bunun program açılışında 1 saniye gibi bir etkisi oluyor. Bunun dışında ini dosyasından ayar yükleme ve bu ayarları işletme kısmı uzun sürüyor 5 saniyede gerisi sürüyor ve yazımdan sonra inceledim sadece bu ayarları kontrol ve ayarların gelen sonuçlarına göre işletmek için yazdığım kodlar kısaltılmış şekilde 800 satır civarı. İşlemler registry ve ini işlemleri bunların karşılığı olarak listbox'lara yazma images'e resimler yükleme checkbox ve radiobox'ları checked=true yapmak gibi bir takım normal delphi materyallerinin işletilmesi.

Bu arada dikkat ettiğim hızlandırma için faydalı bir kaç koşul.
1. Otomatik Form Oluşturmama: dpr dosyasında program çalıştırılırken Application.CreateForm olayını teke düşürdüm ve sadece ana formu create ediyorum.

2. Mümkün Olduğunca Windows API’lerini Tercih Ediyorum

3. Küçük Fonskiyonlar İçin “inline” Direktifini Kullanıyorum

4. FastMM Kullanıyorum

5. Kodları Yazarken Disiplinline Dikkat Ediyorum

6. Basm İle Optimizasyon Yapmaya Çalışıyorum : Basm yani Delphi içinde assembler kullanarak bazı önemli yerleri optimize etmeye çalışıyorum.
·•· Bilgi Güçtür ! Bu Gücü Hisset ! ·•·
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: Program hızı hakkında !

Mesaj gönderen qamyoncu »

Hızlandıramazsam açılışta bir loading olayı yapabilirmiyim ?
SplashScreen'den bahsetmiyor musunuz ? :ara
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
Kullanıcı avatarı
ByDeniS
Üye
Mesajlar: 144
Kayıt: 03 Oca 2009 12:24
Konum: My Computer

Re: Program hızı hakkında !

Mesaj gönderen ByDeniS »

qamyoncu yazdı:
Hızlandıramazsam açılışta bir loading olayı yapabilirmiyim ?
SplashScreen'den bahsetmiyor musunuz ? :ara
Evet ama daha önce bu tür bir çalışma yapmadığım için bu konudaa hiç bir bilgim yok neredeyse :(
·•· Bilgi Güçtür ! Bu Gücü Hisset ! ·•·
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: Program hızı hakkında !

Mesaj gönderen qamyoncu »

Kod: Tümünü seç

var 
SplashForm : TForm; 
begin 

SplashForm := Tform3.Create(Application); 
SplashForm.Show; 
SplashForm.Update; 

Application.Initialize; 
Application.CreateForm(TForm1, Form1); 
Application.CreateForm(TForm2, Form2); 

SplashForm.Hide; 
SplashForm.Free; 

Application.Run;
gibi bir kod buldum, Project dosyasının kodu, bu sitedeki arama bölümüne "Splash Screen" yazarak :
http://delphiturkiye.com/forum/viewtopi ... een#p55446
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
Kullanıcı avatarı
ByDeniS
Üye
Mesajlar: 144
Kayıt: 03 Oca 2009 12:24
Konum: My Computer

Re: Program hızı hakkında !

Mesaj gönderen ByDeniS »

@qamyoncu : Çok teşekkür ederim allah razı olsun, istediğim ama ne istediğimi bilmediğim şeyi bulmama yardımcı oldu :)

Bu arada dpr dosyasına bu işlemi yaptığım zamanda ana form create edenekadar splash olayı gerçekleşiyor gerçekleşmesine velakin bu sefer programda kasma yaptı bende bu yöntemi değiştirerek splash olayını ana form'un create olayında kullandım daha verimli ve sağlıklı olduğuna inanıyorum. Splash olayını dpr'de değilde anaform'un create eventinden kullanmam herhangibir probleme yol açabilirmi ilerleyen safhalarda bunu merak ettim ?

Saygılarımla hayırlı ramazanlar.
·•· Bilgi Güçtür ! Bu Gücü Hisset ! ·•·
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: Program hızı hakkında ! [Çözüldü]

Mesaj gönderen qamyoncu »

Tam olarak bi fikrim yok ama daha verimli olmuşsa ve işini gördüyse sorun çözülmüş demektir şuanlık en azından :wink:
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
Kullanıcı avatarı
ByDeniS
Üye
Mesajlar: 144
Kayıt: 03 Oca 2009 12:24
Konum: My Computer

Re: Program hızı hakkında ! [Çözüldü]

Mesaj gönderen ByDeniS »

qamyoncu yazdı:Tam olarak bi fikrim yok ama daha verimli olmuşsa ve işini gördüyse sorun çözülmüş demektir şuanlık en azından :wink:
Teşekkür ederim tekrar allah razı olsun.
·•· Bilgi Güçtür ! Bu Gücü Hisset ! ·•·
Cevapla