Forum
arkadaşlar merhaba ;
lokal de çalışan veri tabanından kayıtları gridde listeleyip , listelerken yeni statüleri varsa bunları kontrol ederek koşullu renklendirme , font biçimlendirme yapan dataset üzerinde çalışan ufak bir uygulamamız var ,bazen butona bastıgımızda anlamsız bir bekleme yapan ve bazende 'Yanıt Vermiyor' hatasına düşen durumlar var , önerilerinizi bekliyorum .
Yazılım .NET 4.5 ve üzeri çalışan VS 2013 de kodlanmış , devex IDE si kullanan ve .DLL ve .EXE koruması olan yapıdadır .
arkadaşlar merhaba ;
lokal de çalışan veri tabanından kayıtları gridde listeleyip , listelerken yeni statüleri varsa bunları kontrol ederek koşullu renklendirme , font biçimlendirme yapan dataset üzerinde çalışan ufak bir uygulamamız var ,bazen butona bastıgımızda anlamsız bir bekleme yapan ve bazende 'Yanıt Vermiyor' hatasına düşen durumlar var , önerilerinizi bekliyorum .
Yazılım .NET 4.5 ve üzeri çalışan VS 2013 de kodlanmış , devex IDE si kullanan ve .DLL ve .EXE koruması olan yapıdadır .
1 - Real time bir durum yok ise datayı cache e alabilirsin, Elastic search yada nCache gibi sistemler ile db baglantısını aradan cıkarıp dırek olarak index ve cache yapısı olan bir bigdata durumuna da gecebılırsın ( bu case data boyutu buyukse )
2 - Data boyutu sorunu yok ıse veri cekme işlemlerinde asyn olarak methodları revıze edebılırsın ılk olarak grıdde gosdterdıgın kadarını take(20) yada Select Top 20 gıbı cekıp daha sonra arttırarak arkada sayfalama yada scrooll da cektırmeye devam edebılırsın.
3 - Genelde windows form uygulamalarında ekranda bır ıslem yaptırdıgınızda sızın gıbı renklendırme vs gıbı multı thread ıslemler kullanmak mantıklı olacaktır ve GUI cakılmalarının onune gececektır .
saygılarımla
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
Performans problemleri genelde veri tabanı kaynaklıdır, ancak doğru tespit için bir profiler kullanmanız en doğru yöntem olacaktır.
Aşağıda popüler birkaç profiler linki paylaşıyorum. Deneme sürümü olarak kullanabilirsiniz;
http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/
http://www.jetbrains.com/profiler/
https://smartbear.com/product/aqtime-pro/overview/
Ayrıca performans optimizasyonu üzerine oldukça faydalı bilgiler bulabileceğiniz şu makalelerde faydalı olabilir;
Merhaba,
veri tabanı olarak Ms Sql kullanıyorsanız, Notification servisini yeni veya değişen veriler için kullanabilirsiniz. Yani uygulamanıza yeni bir veri eklenmesi veya verinin değişmesi halinde otomatik olarak sadece eklenen/değişen veriyi GUI tarafına yazarsınız veya iletişim kurarsınız. Böylelikle her seferinde verilerin tamamını veri tabanından çekmek zorunda kalmazsınız. GUI tarafında ise DataView sınıfını kullanarak biraz daha performans kazanabilrsiniz. Ayrıca DataView sınıfı üzerinde Sql sorgulama tarzında verileri filtreleyebilirsiniz. Tabii ki optimizasyonu göz önünde bulundurarak yapılan sorgulamalardan bahsediyorum.
GUI, Wpf mi yoksa Form projesi mi bilmiyorum ancak, Wpf ise ResourceDictionary veya Xaml kodları altında kullandığınız elementin resource alt elementini kullanarakda faydasını görürsünüz.
Hatanın sebebi olarak "Yanıt vermiyor" bir timeout mu yoksa herhangi başka bir sebepten mi oluşuyor ? Arka plandaki hata sebebini/içeriğini veya hata kodunu paylaşırsanız..
Diğer bir yandan TPL (Task Parallel Library) konseptine göz atmanızı tavsiye ediyorum. Eğer yüklü veri tabanı işlemleri, dosya yazma/okuma yapıyorsanız performans konusunda size önemli ölçüde destek olacaktır. Verilerinizin boyutuna göre ölçüm ve test yaparak kullanmanızı tavsiye ediyorum, çünkü düşük veri boyutlarındaki veya işlemlerindeki kullanımında performans kaybı yaşayabilirsiniz.
Saygılarımla
There is always something you miss.