yardıma ihtiyacım var! Görev çözülmedi, demirin sınırlamalarıyla karşılaşıyorum - sayfa 2
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Benzer bir sorunu tartıştıkları siteyi ve bunu C++ ile çözme seçeneklerini hatırladım.
Teşekkürler, okuyacağım.
Tabii ki üzgünüm, ama ya 64 bit denerseniz veya MT yalnızca 32'ye dönerse
x64'e geçmek, tavanı çok uzağa değil, basitçe hareket ettirecektir. Başka bir 16 GB bellek için bana koşma? ;)
1. Doğal olarak x64 sistemi kullanın.
2. Amazon EC2 bulutunda daha güçlü bir makine kiralayın ve üzerinde hesaplamalar yapın.
3. Sıkıştırılmış verileri kullanın, anında bellekte sıkıştırın. Gerçek veriler, akışlara bölündüğünde daha iyi sıkıştırılır (işaret/mantis/üs); 12 bitlik kayan nokta kullanabilirsiniz (doğruluk pahasına).
4. EA dışında büyük verilerle çalışabilecek bir hesaplama yapın (Matlab/R/vb).
1.2: Bu, tavanı hareket ettirmekle ilgili, ancak sorunu belirli bir sayıya bağlı kalmadan çözmek istiyorum.
3. Sorun, diskteki veri miktarı değil, tam tersi - bellekteki miktardır. Yüzde 10-20 daha sıkıştırabilirim ama yine bu sorunu çözmez.
4. Şimdilik sanal alanda kalmayı umuyorum. Böylece daha sonra fotokopi / senkronizör yazmazsınız ...
Katıldığınız için teşekkürler!
x64'e geçmek, tavanı çok uzağa değil, basitçe hareket ettirecektir. Başka bir 16 GB bellek için bana koşma? ;)
Her zaman bu tür verilerle çalışmıyorsunuz, değil mi? Doğrudan x64'ün altına yazın ve gerektiğinde amazon'da çalıştırın. Ayrıca orada bir mikro örnekte hata ayıklayabilirsiniz.
Yine de böyle bir görev sürekli ortaya çıkarsa - 64 GB bellek yaklaşık 1 bin dolara satın alınabilir, örneğin Corsair Vengeance Pro CMY64GX3M8A2133C11.
Veya algoritmanın yapısını, veriler üzerinden tek geçişte çalışabilmesi için yeniden düşünün.
ps Ayrıca, sıkıştırılmış verileri bellekte saklayabilir ve işleme için yeterli bir süre boyunca gerektiği gibi sıkıştırabilirsiniz.
Teşekkürler, okuyacağım.
x64'e geçmek, tavanı çok uzağa değil, basitçe hareket ettirecektir. Başka bir 16 GB bellek için bana koşma? ;)
Seçenek 1. Dosyayı parçalara ayırın.
Seçenek 2. Ayrıca parçalara ayırın, ancak yine de sistemleştirin. Sözlükte bir kelime aramak gibi. "A.txt" dosyasında aradığımız "A" harfi ile başlar. Böylece verileri bir ağaç biçiminde düzenleyebilirsiniz (sözlüğe benzer: A, B ... klasörleri AA, AB vb. klasörlerinin A klasöründe), arama çok hızlı bir şekilde gerçekleştirilecektir.
Bu nedenle, birçok kez okumak zorunda kalacaksınız ve bu:
kurtarmaya sanal RAM diski ;)
ve delik olmayacak ve hızı beğeneceksiniz.
ve tüm cilt hemen kullanılabilir.
parçalara ayırmaya gerek yok, çünkü parçalar göreve uymuyor
1. Bu önbellek... Ya da ne demek istediğini anlamıyorum. Gerekli parçaların sürekli okunmasıyla varyantım?
Bir dosyayı paketinden okumak için, sarmalayıcı dosyanın küçük bir bölümünü bellekte tutacak ve okumadan değiştirecektir. Demek istediğim, dosyanın nasıl kullanıldığını biliyorsun, yani sarmalayıcı oldukça verimli olmalı.
Kahrolası...
Aynı yumurtalar, sadece yan tarafta. Okuma hızlanabilir, ancak bu sorunu küresel olarak çözmez.
Küçük bir ölçekte tekrarlayan eylemler düşünüyordum.
Eşleme kullanmak, kendinizinkini yazmak yerine Windows önbelleğini kullanmaktır. Bir parça indirdim, okudum, yükledim. Bir parça sık kullanılıyorsa, Windows onu bellekte tutacaktır.
3. Sıkıştırılmış verileri kullanın, anında bellekte sıkıştırın. Gerçek veriler, akışlara bölündüğünde daha iyi sıkıştırılır (işaret/mantis/üs); 12 bitlik kayan nokta kullanabilirsiniz (hassasiyet pahasına).
4. EA dışında büyük verilerle çalışabilecek bir hesaplama yapın (Matlab/R/vb).
Çok miktarda bilgi var (bir metin dosyasında yaklaşık 20 GB).
...
Ve bu dosya bir arşivleyici tarafından sıkıştırılırsa, hacim ne olacaktır (sonuçta metin çok iyi sıkıştırılmalıdır)?