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
.
İşte yayınlamaya söz verdiğim video. Görüntü kalitesi düşük ancak tepki gecikmelerini görmenizi engellemiyor.
Aslında terminaldeki gecikme daha azdır. Kayıt programı açıkken her şey iki kat daha yavaş gerçekleşir. İşlemci ayrıca önemli ölçüde daha fazla yüklenir.
Bu nedenle, bu videodan reaksiyon hızı hakkında tamamen objektif bir fikir elde etmek imkansızdır, ancak pencere güncelleme hızı ile boyutu arasındaki kalıp açıkça görülmektedir.
(Bu yüzden farklı boyutlarda birkaç pencere yaptım.)
Bana öyle geliyor ki, görüntü reaksiyonunun engellenmesinin nedenini tam olarak anladım. Buradaki nokta, ColorToARGB () işlevinin sabitçağrısıdır . Her olayda ve her pikselde bu işlevi çağırırım. Renkleri bir kez hesaplayıp sonra hazır kullanmak yerine sürekli yeniden hesaplıyorum.
Bence mesele bu.
Not Tüm pencerelerin toplam nesne sayısının 35 olduğunu eklemeyi unuttum.
.
İşte yayınlamaya söz verdiğim video. Görüntü kalitesi düşük ancak tepki gecikmelerini görmenizi engellemiyor.
Aslında terminaldeki gecikme daha azdır. Kayıt programı açıkken her şey iki kat daha yavaş gerçekleşir. İşlemci ayrıca önemli ölçüde daha fazla yüklenir.
Bu nedenle, bu videodan reaksiyon hızı hakkında tamamen objektif bir fikir elde etmek imkansızdır, ancak pencere güncelleme hızı ile boyutu arasındaki kalıp açıkça görülmektedir.
(Bu yüzden farklı boyutlarda birkaç pencere yaptım.)
Bana öyle geliyor ki, görüntü reaksiyonunun engellenmesinin nedenini tam olarak anladım. Buradaki nokta, ColorToARGB () işlevinin sabitçağrısıdır . Her olayda ve her pikselde bu işlevi çağırırım. Renkleri bir kez hesaplayıp sonra hazır kullanmak yerine sürekli yeniden hesaplıyorum.
Bence mesele bu.
Not Tüm pencerelerin toplam nesne sayısının 35 olduğunu eklemeyi unuttum.
Kaynağına bakmanız mümkün mü? Ben kendim için, deneyim için.
OpenCL ile tuval oluşturmayı hızlandırmak mümkün mü?
Evet. OCL, işlemeyi paralelleştirme yeteneğine + vektörler üzerinde çalışma yeteneğine sahiptir - bu, oluşturma/bindirme sürecini hızlandırır.
Mathemat'ın makalesinde vektörleri kullanma hakkında daha fazla bilgi https://www.mql5.com/ru/articles/407
Evet. OCL, işlemeyi paralelleştirme yeteneğine + vektörler üzerinde çalışma yeteneğine sahiptir - bu, oluşturma/bindirme sürecini hızlandırır.
Mathemat'ın makalesinde vektörleri kullanma hakkında daha fazla bilgi https://www.mql5.com/ru/articles/407
CCanvas'tan Erase()'in hızını ve OpenCl'de yapılan PixelSet() döngüsünü karşılaştırdınız mı? Teoride, iyi bir ivme ile, ara sonuçları ve diğer zorlukları önbelleğe almadan aptal çizim kodu oluşturabilirsiniz.
Bu arada katmanları bu formüle göre mi karıştırıyorsunuz?
Evet, her renk bileşeni için wikipedia'daki formül: Sonuç = Arka Plan + (Ön Plan - Arka Plan) * Alfa;
Ve bu arada, Sil ile, OCL'de bir pusu. Memset analogu yoktur (CUDA'nın aksine). Bu nedenle, şimdi ana bilgisayarda Erase yapmamız ve soyulmuş diziyi kesinlikle basit Erase'den daha hızlı olmayan CLBufferWrite aracılığıyla kopyalamamız gerekiyor.
Diziye 1 puan yazan iş birimleri için bir dizi görev yapmaya çalıştım, ancak hızı hatırlamıyorum - önceki yöntemden daha yavaş görünüyordu.
Ve OCL 1.2'de Bunu yapan clEnqueueFillBuffer() => MQL sözdizimi CL Buffer Fill () olmalıdır
Ancak bu sarmalayıcı uygulanmadı (sürüm 1.1 taşındığından beri).
Evet, her renk bileşeni için wikipedia'daki formül: Sonuç = Arka Plan + (Ön Plan - Arka Plan) * Alfa;
Ve bu arada, Sil ile, OCL'de bir pusu. Memset analogu yoktur (CUDA'nın aksine). Bu nedenle, şimdi ana bilgisayarda Erase yapmamız ve soyulmuş diziyi kesinlikle basit Erase'den daha hızlı olmayan CLBufferWrite aracılığıyla kopyalamamız gerekiyor.
Diziye 1 puan yazan iş birimleri için bir dizi görev yapmaya çalıştım, ancak hızı hatırlamıyorum - önceki yöntemden daha yavaş görünüyordu.
Ve OCL 1.2'de Bunu yapan clEnqueueFillBuffer() => MQL sözdizimi CL Buffer Fill () olmalıdır
Ancak bu sarmalayıcı uygulanmadı (sürüm 1.1 taşındığından beri).
İngilizce wiki'de formül daha ilginç, iki yarı saydam katmanı karıştırabilirsiniz. Bu, yarı saydam bir arayüz ve diğer güzelliklerle yapılabilir.
Ve bu benim durumumda gerekli değildi, her şey doğru bir şekilde karışıyor. Alt tabakanın içinden geçtiği B tabakası olsa bile, A katmanının altındaki her şey bir alt tabaka olarak kabul edilebilir.