dll metod speed problem

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ercan_elo_bil
Üye
Mesajlar: 26
Kayıt: 11 Tem 2014 11:13

dll metod speed problem

Mesaj gönderen ercan_elo_bil »

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
Garbage Collector, Delphi çöp üretmez çöpü bulup temizlemeye asla gerek yoktur... :D
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: dll metod speed problem

Mesaj gönderen freeman35 »

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 !!!
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: dll metod speed problem

Mesaj gönderen ikra »

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.
kıdemsiz üye
Cevapla