C# ile dosyadaki verileri satır satır liste kutusuna aktarıyorum. 1 milyon veri gibi yüksek miktarda verilerde ilerleme zamanla aşırı yavaşlıyor. En sonunda donuyor. Hiç ilerlememeye başlıyor. Bu problemi nasıl çözerim?
Doğrudan sorun çıkaran şeyi çözmek yerine o sorunu manuel olarak çözüyorsun orada da süreçle ilgili başka bir sorun yaşıyorsun. Hayretler içerisindeyim.
Doğrudan sorun çıkaran şeyi çözmek yerine o sorunu manuel olarak çözüyorsun orada da süreçle ilgili başka bir sorun yaşıyorsun. Hayretler içerisindeyim.
Tabii ki sistemi otomatikleştirdim ama yine de bir yerde problem oluşabiliyor. Örneğin düzenli ifadelerle kesme işareti gibi hataları önledim. Bunun dışında görünmeyen karakterler var. Bu karakterleri düzenli ifade ile engelleyemediğim için elle denetlemek zorunda kalıyoruz.
1 milyon satırı aynı anda kontrol etmenin daha kısa olduğunu sana kim söyledi ki? Zaten iterasyon usulü çalışıyor. Bir seferde veriyi memorye yükleyip içinde itere edeceğine, 5000 veriyi yükle onun içinde itere et. Sonuçta hala karakter kontrolü yapıyorsun. Multithreading kullan.
4 thread ile bu işi neredeyse 4te bir süreye düşürürsün. Tek bir iterasyon yerine paralel iterasyon ile lineer search çoook daha mantıklı.
Veriyi chunklar halinde alıp tekrar 4 chunka bölebilirsin. Yada 0dan başlayıp 5er 5er attlattığın bir lineer search denersin. 0-5-10, 1-6-11, 2-7-12, 3-8-13, 4-9-14... İkinci söylediğimde exception beklemen lazım. Eğer thread veri limiti dışına çıkarsa hata alacaksın çünkü.
I just bumped on to this question today and was trying for a solution that is better than O(N) but could not come up with one. Searched through SO but couldn't find this question. Is there any
Tecrübe konuşuyor. Elle kontrol ediyorum. Verileri alıp diğer yazılıma eklemek otomatik yapılmıyor. 5.000'er biçiminde olduğunda 1 milyonu anında aktarmaya göre daha uzun sürecektir.