merhaba,
bir dll de metod yazdım bunu exe ana uygulamadan çagığıyorum 800ms sürüyor
Ama aynı metodu exe e gömdüğümde 200ms sürüyor, bu sorunu nasıl çözerim?
dll metodunu static kullanıyorum loadlibrary yok
dll metod speed problem
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 26
- Kayıt: 11 Tem 2014 11:13
dll metod speed problem
Garbage Collector, Delphi çöp üretmez çöpü bulup temizlemeye asla gerek yoktur...
Re: dll metod speed problem
Yüklenmeyen bir şey çalıştırılamaz, yani ya sen önceden yüklersin, ve gerektiğinde sonradan kullanırsın, yada sistem, ihtiyacı olduğunda yükle. Ama asıl geçikme, dll memory share kullanmak zorunda, yani iki farklı yordam arasında bilgi aktarımı olur, buda belli bir formatta olmak zorunda olduğu için bu çevrimlerde vs gibi etkenlerden zaman kaybı normal.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Re: dll metod speed problem
Tickcount‘a güvenmiyorum desem abartmis olur muyum
Tek cekirdek üzerinden bir seneryo yazalim.
Her 20ms gibi bir zaman araliginda process/thread token aldigini varsayarsak, birinci test‘deki islemci yükü ve token süreci ile, ikinci test‘deki islemci yükü ve token süreci ayni olmayabilir. Bu da sonucu milisaniye bazinda etkiler.
Dll kendi basina bir process olarak algilaniyor biliyorum.
Process‘ler arasi veri aktarimlarinda muhakkak zaman ihtiyaci olacaktir.
Belki dll icerisindeki islemi yine dll icindeki bir prosedür ile tetikleyip, dönen sonuca göre gerekli islemi yine ayni dll icerisinde halledebilirsin. Bu da mainprocess ile childprocess arasindaki veri aktarimindan tasarruf ettirebilir.
Ikinci seneryo ise:
Dll‘den dönen sonuclari direkt almak yerine, adreslerini alip pointer-casting ile direkt okursan, belki fark olusabilir.
Tek cekirdek üzerinden bir seneryo yazalim.
Her 20ms gibi bir zaman araliginda process/thread token aldigini varsayarsak, birinci test‘deki islemci yükü ve token süreci ile, ikinci test‘deki islemci yükü ve token süreci ayni olmayabilir. Bu da sonucu milisaniye bazinda etkiler.
Dll kendi basina bir process olarak algilaniyor biliyorum.
Process‘ler arasi veri aktarimlarinda muhakkak zaman ihtiyaci olacaktir.
Belki dll icerisindeki islemi yine dll icindeki bir prosedür ile tetikleyip, dönen sonuca göre gerekli islemi yine ayni dll icerisinde halledebilirsin. Bu da mainprocess ile childprocess arasindaki veri aktarimindan tasarruf ettirebilir.
Ikinci seneryo ise:
Dll‘den dönen sonuclari direkt almak yerine, adreslerini alip pointer-casting ile direkt okursan, belki fark olusabilir.
kıdemsiz üye