delphi 7 + multitreading yardım lazim. +gerekirse ücretli
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 9
- Kayıt: 14 Ağu 2014 07:17
delphi 7 + multitreading yardım lazim. +gerekirse ücretli
merhaba.
Bir delphi uygulamam var. Indiy UDP server componenti ile port dinliyorum, gelen veriyi parse ediyorum, eksikleri SQL den select ediyorum. sonra SQL e insert ediyorum. Tek başına 1000-1500 clienti dinleyerek verimli çalışıyor.
Toplam client sayım 15 bin civari, bende aynı exeyi birkac kez baslatıp her birinde farklı port dinleyerek sorunu geçici çözdüm ama bunu yapmak istemiyorum. Tek exe işi halletsin istiyorum, bununda yolu multithreading den geciyor anladıgım kadarı ile.
Port dinle.
Parse et.
SQl den gerekirse bir select.
Olusan veriyi SQL e insert
bu işlemleri threading ile yapmamı saglayabilecek, örnek yapabilecek bir arkadas varmi? Ücretli destekte kabulumdur.
iyi calismalar.
Bir delphi uygulamam var. Indiy UDP server componenti ile port dinliyorum, gelen veriyi parse ediyorum, eksikleri SQL den select ediyorum. sonra SQL e insert ediyorum. Tek başına 1000-1500 clienti dinleyerek verimli çalışıyor.
Toplam client sayım 15 bin civari, bende aynı exeyi birkac kez baslatıp her birinde farklı port dinleyerek sorunu geçici çözdüm ama bunu yapmak istemiyorum. Tek exe işi halletsin istiyorum, bununda yolu multithreading den geciyor anladıgım kadarı ile.
Port dinle.
Parse et.
SQl den gerekirse bir select.
Olusan veriyi SQL e insert
bu işlemleri threading ile yapmamı saglayabilecek, örnek yapabilecek bir arkadas varmi? Ücretli destekte kabulumdur.
iyi calismalar.
-
- Üye
- Mesajlar: 239
- Kayıt: 04 Oca 2008 01:53
- Konum: Karşıyaka/İzmir
Re: delphi 7 + multitreading yardım lazim. +gerekirse ücretl
Fikir vereyim önce, eğer yapamazsanız o zaman kod kısmına el atarız.
Şimdi thread classı oluşturabilirsiniz. Ancak her client için ayrı bir object oluşacağı için fazla thread çalışacak ve bu sefer de fazla thread yüzünden uygulamanız yavaşlayacak.
Bunun yerine önce bir thread oluşturun. Bu threadde diyelim ki 5000 clientlık bir kapasite olsun. 5001'inci client bağlanınca ikinci thread de çalışmaya başlasın, 10001'nci client bağlanınca üçüncü client çalışmaya başlasın. Böylece sürüp gidebilir.
Böyle daha iyi bir performans alabilirsiniz.
Şimdi thread classı oluşturabilirsiniz. Ancak her client için ayrı bir object oluşacağı için fazla thread çalışacak ve bu sefer de fazla thread yüzünden uygulamanız yavaşlayacak.
Bunun yerine önce bir thread oluşturun. Bu threadde diyelim ki 5000 clientlık bir kapasite olsun. 5001'inci client bağlanınca ikinci thread de çalışmaya başlasın, 10001'nci client bağlanınca üçüncü client çalışmaya başlasın. Böylece sürüp gidebilir.
Böyle daha iyi bir performans alabilirsiniz.
In dubio pro reo...
Şüpheden sanık/özgürlük yararlanır...
Şüpheden sanık/özgürlük yararlanır...
-
- Üye
- Mesajlar: 9
- Kayıt: 14 Ağu 2014 07:17
Re: delphi 7 + multitreading yardım lazim. +gerekirse ücretl
merhaba,
Her thread bir adet udp server ve her serverada birkac bin limit mi vereyim?
güzel fikir gibi aslında.
Ama thread ile daha önce hiç çalışmadım. Parse ve SQL insert fonksiyonlarimi thread içine mi almam lazim ?
Her thread bir adet udp server ve her serverada birkac bin limit mi vereyim?
güzel fikir gibi aslında.
Ama thread ile daha önce hiç çalışmadım. Parse ve SQL insert fonksiyonlarimi thread içine mi almam lazim ?
Re: delphi 7 + multitreading yardım lazim. +gerekirse ücretl
yanlis yol izliyorsunuz gibime geldi.
dogrusu pooling dir.
thread sayisi client sayisina göre degil, sistem yapisina göre ayarlanmali.
cekirdek sayisi önemlidir.
dogrusu pooling dir.
thread sayisi client sayisina göre degil, sistem yapisina göre ayarlanmali.
cekirdek sayisi önemlidir.
kıdemsiz üye
-
- Üye
- Mesajlar: 239
- Kayıt: 04 Oca 2008 01:53
- Konum: Karşıyaka/İzmir
Re: delphi 7 + multitreading yardım lazim. +gerekirse ücretl
Her client için ayrı bir thread olmasının hatalı olacağını, sistemi yavaşlatacağını önceki mesajımda söylemiştim. Client sayısına göre threadler oluşturulabilir düşüncesindeyim.
In dubio pro reo...
Şüpheden sanık/özgürlük yararlanır...
Şüpheden sanık/özgürlük yararlanır...
-
- Üye
- Mesajlar: 9
- Kayıt: 14 Ağu 2014 07:17
Re: delphi 7 + multitreading yardım lazim. +gerekirse ücretl
thread yada thread pool konularına çok çok yabancıyım. o nedenle ne desem boş.
ptesi günü kodumdan threading olmasını istedigim fonksyionu paylasabilirim
ptesi günü kodumdan threading olmasını istedigim fonksyionu paylasabilirim
Re: delphi 7 + multitreading yardım lazim. +gerekirse ücretl
Bu işlem için bir WEB-SERVICE uygulaması veya DATA-SNAP (eski adı ile MIDAS) uygulaması yazmanızı tavsiye ediyorum.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Re: delphi 7 + multitreading yardım lazim. +gerekirse ücretl
%100 katılıyorum. O kadar makine için servis çok daha stabil çalışır.csunguray yazdı:Bu işlem için bir WEB-SERVICE uygulaması veya DATA-SNAP (eski adı ile MIDAS) uygulaması yazmanızı tavsiye ediyorum.
-
- Üye
- Mesajlar: 9
- Kayıt: 14 Ağu 2014 07:17
Re: delphi 7 + multitreading yardım lazim. +gerekirse ücretl
webservice yada datasnap için threading olayıne bulaşmama gerek varmı ?
New-> Services seklinde boş bi proje acıp kodlarımı kontrollü şekilde taşımam yeterli olurmu?
New-> Services seklinde boş bi proje acıp kodlarımı kontrollü şekilde taşımam yeterli olurmu?
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
Re: delphi 7 + multitreading yardım lazim. +gerekirse ücretl
datasnap pek tavsiye etmiyorum. performans ve stabilite sorunlari mevcut. istediginiz verimi alamayabilirsiniz.
Benim datasnap ile ilgili cok tecrubem olmadi ama belki ince ayarlarla isinize yarar hale gelebiliyordur.
trafik cok yogunsa yine delphi ile yazilmis olan mormot kutuphanesini kullanabilirsiniz.
performans ve stabilite olarak cok daha iyidir.
http://robertocschneiders.wordpress.com ... ity-tests/
Benim datasnap ile ilgili cok tecrubem olmadi ama belki ince ayarlarla isinize yarar hale gelebiliyordur.
trafik cok yogunsa yine delphi ile yazilmis olan mormot kutuphanesini kullanabilirsiniz.
performans ve stabilite olarak cok daha iyidir.
http://robertocschneiders.wordpress.com ... ity-tests/
Re: delphi 7 + multitreading yardım lazim. +gerekirse ücretl
Eğer programı web servise dönüştürürseniz client ları da yeniden yapılandırmanız gerekecektir.
Delphi ‘de Web Servisleri ve SOAP Uygulamaları
http://aysenlik.blogspot.com.tr/p/delph ... -soap.html
Delphi ‘de Web Servisleri ve SOAP Uygulamaları
http://aysenlik.blogspot.com.tr/p/delph ... -soap.html
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
-
- Üye
- Mesajlar: 9
- Kayıt: 14 Ağu 2014 07:17
Re: delphi 7 + multitreading yardım lazim. +gerekirse ücretl
teşekkürler önerileriniz için. inceleyip dönecegim
Re: delphi 7 + multitreading yardım lazim. +gerekirse ücretl
Indy kendi içinde zaten thread kullanıyor. Burada asıl sorununuz çok fazla client'ın bağlantı kurma isteği olduğunda karşılaşacağınız problem. Her bir client için bir thread demek sistemin kararsız hale gelmesi demektir bir müddet sonra. En basit hali ile 5000 client için 5000 * 1 mb = 5000 mb stack alanı ayrılacaktır. ikra'nın tavsiye ettiği gibi, bu iş için thread pool ve IOCP kullanmalısınız. Bu işin en ideal hali budur, ancak implemente etmesi pek de kolay değildir.
-
- Üye
- Mesajlar: 9
- Kayıt: 14 Ağu 2014 07:17
Re: delphi 7 + multitreading yardım lazim. +gerekirse ücretl
sorunumu tespit etmek için bir test yaptım.
gelen dataların parse işleminden sonra MSSQL e insert eden procedure'u command out yaptigimda, 15k client sorunsuz baglandı, tüm gelen veriler parse edildi. SQL e yazılmadı tabiki ve yazılım kitlenmedi.
Bu arada SQL server donanımım çok sağlam. 6 SSD diskten oluşan raid, 196 GB ram ve 24 çekirdekli bir sunucu. üzerinde calisan baska bir yazılımda yok.
Sanirim SQL, insert taleplerine yetişemiyor., SQL e insert yapmamı sağlayan procedure'u multi threading e cevirebilsem işe yarar mı?
gelen dataların parse işleminden sonra MSSQL e insert eden procedure'u command out yaptigimda, 15k client sorunsuz baglandı, tüm gelen veriler parse edildi. SQL e yazılmadı tabiki ve yazılım kitlenmedi.
Bu arada SQL server donanımım çok sağlam. 6 SSD diskten oluşan raid, 196 GB ram ve 24 çekirdekli bir sunucu. üzerinde calisan baska bir yazılımda yok.
Sanirim SQL, insert taleplerine yetişemiyor., SQL e insert yapmamı sağlayan procedure'u multi threading e cevirebilsem işe yarar mı?
-
- Üye
- Mesajlar: 239
- Kayıt: 04 Oca 2008 01:53
- Konum: Karşıyaka/İzmir
Re: delphi 7 + multitreading yardım lazim. +gerekirse ücretl
Dediğiniz gibi socketlerde sorun yoksa Sql threading ile yapmalısınız.
In dubio pro reo...
Şüpheden sanık/özgürlük yararlanır...
Şüpheden sanık/özgürlük yararlanır...