MQL'de asenkron ve çok iş parçacıklı programlama - sayfa 39

 
Andrey Barinov :
...

1000 satırlık bir tabloda kaydırarak gözlerinizle neler görebilirsiniz? Hangi sorun çözülüyor?

PS Offtopic tekrar gitti...

Andrey, görev kullanıcıya herhangi bir tablo oluşturma fırsatı vermekti. Sharp'ta olduğu gibi. Kafasından ne geçtiği önemli değil...)

Offtopik bitirmeyi öneriyorum.))


not. Adil olmak gerekirse, tablonun sadece görünen kısmını yeniden çizebileceğinizi ve sadece scroll olayında görünmeyen kısmı yeniden çizebileceğinizi belirtmek gerekir. Ama yine, bu bir stres testiydi.


not. Her şey tablodaki değerlerin tam olarak nasıl değiştiğine bağlıdır. Değerler çok hızlı ve sürekli değişiyorsa, kaydırma sırasında yalnızca görünen alanı yeniden çizmek ve görünmeyen alanı yeniden çizmek daha iyidir. Değerler nadiren değişirse, her şeyi bir kerede yeniden çizmek daha iyidir, böylece kaydırma başladığında yeniden çizim nedeniyle gecikme olmaz. Tablodaki değerlerin ne sıklıkla değişeceğini tam olarak bilmenin imkansız olduğu gerçeğine dayanarak, her şeyi bir kerede yeniden çizmek için evrensel bir yöntem seçtim. Sonuçta, değerlerin deli gibi dans ettiği nadiren devasa tablolar vardır. Bu nedenle, tüm tuvali bir kerede yeniden çizmek ve kaydırmanın başlangıcındaki gecikmeyi atlamak daha iyidir.

ZYY. 900*7000 piksellik bir tuvalin yeniden çizilmesinin ne kadar sürdüğünü gördünüz mü? Bu gecikme MT5'te bile yüzlerce milisaniyeye ulaşabilir. Kaydırmanın başlangıcında böyle bir gecikme yaşamak çok can sıkıcı. Bu nedenle, yeniden çizim sıklığı küçükse, her şeyi bir kerede çizmek daha iyidir.

Konuya geri dönersek - bu, MT5'te çoklu kullanım ihtiyacının nedenlerinden biridir!))


ZYYY. Son olarak. Büyük tabloları çok sık yeniden çizerken işlemci yükü sorununu aşmak için farklı bir yol seçtim. Değişen değerlerin çıkış hızı için özel bir kontrolör yaptım. Yani, değerler hızlı bir şekilde değişir, ancak kullanıcı çıktılarının (yeniden çizme) hızını bir kaydırıcı ile kontrol eder (gösterdim). Böylece işlemci üzerindeki yük önemli ölçüde azaltılır ve kullanıcının tablodan bilgileri algılaması daha uygundur.

 
Реter Konow :

Andrey, görev kullanıcıya herhangi bir tablo oluşturma fırsatı vermekti. Sharp'ta olduğu gibi. Kafasına girmesi yetmiyor...))

Offtopik bitirmeyi öneriyorum.))


not. Adil olmak gerekirse, tablonun sadece görünen kısmını yeniden çizebileceğinizi ve sadece scroll olayında görünmeyen kısmı yeniden çizebileceğinizi belirtmek gerekir. Ama yine, bu bir stres testiydi.


not. Her şey tablodaki değerlerin tam olarak nasıl değiştiğine bağlıdır. Değerler çok hızlı ve sürekli değişiyorsa, kaydırma sırasında yalnızca görünen alanı yeniden çizmek ve görünmeyen alanı yeniden çizmek daha iyidir. Değerler nadiren değişirse, her şeyi bir kerede yeniden çizmek daha iyidir, böylece kaydırma başladığında yeniden çizim nedeniyle gecikme olmaz. Tablodaki değerlerin ne sıklıkla değişeceğini tam olarak bilmenin imkansız olduğu gerçeğine dayanarak, her şeyi bir kerede yeniden çizmek için evrensel bir yöntem seçtim. Sonuçta, değerlerin deli gibi dans ettiği nadiren devasa tablolar vardır. Bu nedenle, tüm tuvali bir kerede yeniden çizmek ve kaydırmanın başlangıcındaki gecikmeyi atlamak daha iyidir.

ZYY. 900*7000 piksellik bir tuvalin yeniden çizilmesinin ne kadar sürdüğünü gördünüz mü? Bu gecikme MT5'te bile yüzlerce milisaniyeye ulaşabilir. Kaydırmanın başlangıcında böyle bir gecikme yaşamak çok can sıkıcı. Bu nedenle, yeniden çizim sıklığı küçükse, her şeyi bir kerede çizmek daha iyidir.

Konuya geri dönersek - bu, MT5'te çoklu kullanım ihtiyacının nedenlerinden biridir!))


ZYYY. Son olarak. Büyük tabloları çok sık yeniden çizerken işlemci yükü sorununu aşmak için farklı bir yol seçtim. Değişen değerlerin çıkış hızı için özel bir kontrolör yaptım. Yani, değerler hızlı bir şekilde değişir, ancak kullanıcı çıktılarının (yeniden çizme) hızını bir kaydırıcı ile kontrol eder (gösterdim). Böylece işlemci üzerindeki yük önemli ölçüde azaltılır ve kullanıcının tablodan bilgileri algılaması daha uygundur.

Peter, eşzamansızlık, çoklu iş parçacığı ve paralellik arasındaki farkı anlıyor musun?

 
Sergey Chalyshev :

Peter, eşzamansızlık, çoklu iş parçacığı ve paralellik arasındaki farkı anlıyor musun?

Bir iş parçacığında asenkron veya paralel çalışma örneği vermeyi öneriyorum.
 
Реter Konow :
Bir iş parçacığında asenkron veya paralel çalışma örneği vermeyi öneriyorum.

Tamam, getir!

 
Sergey Chalyshev :

Tamam, getir!

Bunları bilmiyorum.

Akış sadece sıra sunar ve dar bir sıra içinde paralel olmak zordur. Kişi ancak spekülatif olarak bir dizi içinde asenkronize olabilir, önceki turlara bakıp eski rotada yeni virajlar ve dönüşler fark ederek, kişinin yeni bir yolda olduğuna gururla inanabilir...

Tek bir noktadan sayısız paralel çizginin geçebileceğine inanan kendine güvenen bir kodlayıcının yaratıcılığı ile tek iş parçacığının sınırlarının üstesinden gelinemeyeceğini anlayın. Bu Öklidyen olmayan geometri, programın gerçeklerine uymaz ve iş parçacığı içindeki işlemlere uyumsuzluk eklemez.
 
Sergey Chalyshev :

Tamam, getir!

Tek elle pamuk mu? dışarıdaki zen zen değil :-)

Pekala, Peter'ın sanal alanın dışına çıkmadığından eminsin. Temelde terimleri anlayamıyor

Neden böyle sorular? evet, profesyonel bir muhabir gibi sel basmaya başlayacak

 
Maxim Kuznetsov :

Tek elle pamuk mu? dışarıdaki zen zen değil :-)

Pekala, Peter'ın sanal alanın dışına çıkmadığından eminsin. Temelde terimleri anlayamıyor

Neden böyle sorular? evet, profesyonel bir muhabir gibi sel basmaya başlayacak

Evet, neden rahatsız. Gülüyorum. İşte paralellik ile tek iş parçacıklı eşzamansızlığa bir örnek. Bu, kendini aldatma dışında bir şey veriyorsa, yanıldığımı kabul ediyorum.
 
Çocuklar, peki, temel mantık. Peki, tek bir eylem dizisinin üzerinden atlayarak bir iş parçacığında asenkron bir şey nasıl yapılır? Yalnızca bir daire içinde hareket ederlerse ve her yinelemede hangi işlemlerin gerçekleştirileceğine ve hangilerinin erteleneceğine karar verirler. Ama bu normal bir uyumsuzluk mu? Paralellikten hiç bahsetmeye değmez. Bir iş parçacığında paralellik ne olabilir? ))

İki iş parçacığı - birbiriyle eşzamansız iki ayrı eylem dizisi.
 
Реter Konow :
Çocuklar, peki, temel mantık. Peki, tek bir eylem dizisinin üzerinden atlayarak bir iş parçacığında asenkron bir şey nasıl yapılır? Yalnızca bir daire içinde hareket ederlerse ve her yinelemede hangi işlemlerin gerçekleştirileceğine ve hangilerinin erteleneceğine karar verirler. Ama bu normal bir uyumsuzluk mu? Paralellikten hiç bahsetmeye değmez. Bir iş parçacığında paralellik ne olabilir? ))

İki iş parçacığı - birbiriyle eşzamansız iki ayrı eylem dizisi.

İki veya yirmi iki iş parçacığı senkron veya asenkron olabilir. Tek bir iş parçacığı hem senkron hem de asenkron işlemleri içerebilir. Nasıl olduğunu kendin belirttin. Paralel açılamıyor.

 
Реter Konow :
Çocuklar, peki, temel mantık. Peki, tek bir eylem dizisinin üzerinden atlayarak bir iş parçacığında asenkron bir şey nasıl yapılır? Yalnızca bir daire içinde hareket ederlerse ve her yinelemede hangi işlemlerin gerçekleştirileceğine ve hangilerinin erteleneceğine karar verirler. Ama bu normal bir uyumsuzluk mu? Paralellikten hiç bahsetmeye değmez. Bir iş parçacığında paralellik ne olabilir? ))

İki iş parçacığı - birbiriyle eşzamansız iki ayrı eylem dizisi.

zaman uyumsuz bir çağrı mutlaka yeni bir iş parçacığının oluşturulmasıyla sonuçlanmaz