Hatalar, hatalar, sorular - sayfa 2780

 
Sergey Dzyublik :

Oynamak için adımlar:

Bu çalışma için teşekkür etmemek mümkün değil! Umarım, diğer böcekler bir gün benzer bir şey alır.

 
Sergey Dzyublik :

Ağlama, uzun zaman önce cevaplandı :

Ne yazık ki, egzoz sadece sıfır değil, aynı zamanda negatifti ...

Neden olumsuz...
Eh, ilkini yakalayamadım, ikinciyi yakalayamadım ama üçüncüyü yakaladım.
Peki ya çok sıkıysam . Bu senin hatan değil.
Bu nedenle, alınma, Sergey.

 
Sergey Dzyublik :

Eşzamansızlık ve eşzamanlılık terimlerini yanlış anlamışsınız.
Bir işlevin eşzamansız olduğunu söylediklerinde, bunun geçerli yürütme dizisinde değil, başka bir paralel dizide yürütüleceği anlamına gelir.

Asıl yürütme farklı bir iş parçacığında gerçekleştiğinden, ana iş parçacığından zaman uyumsuz ChartSetInteger işlevinin çağrılması hızlıdır.
Öte yandan, ChartGetInteger eşzamanlı işlevini çağırmak, iş parçacığı eşitleme gerektirir ve bu ek zaman alabilir.
Gecikmeler, özellikle paralel bir iş parçacığı sürekli olarak grafik yapısının verilerini güncellediğinde (örneğin, kullanıcı grafik penceresini hareket ettirdiğinde veya geçmişi kaydırdığında) fark edilir.
Büyük olasılıkla, basitlik ve güvenilirlik için, grafik veri yapısı için bir senkronizasyon nesnesi kullanılır.
"Veri segmentasyonu" kullanarak yürütme hızını artırmayı deneyebilirsiniz, ancak diğer yandan, artık bir kilitlenme veya yetersiz güncellenmiş veriler veya diğer daha kritik yerlerde yavaşlama olasılığı vardır.
Genel olarak - zaten stabil çalışana dokunmamak daha iyidir.

Alain Verleyen :

Numara. Get yöntemleri eşzamanlıdır, ancak aynı anda gruplandırılabilir ve yürütülebilir, bu nedenle 1 Get veya 100 yöntemini çağırmak hemen hemen aynıdır.

Belirlenen yöntemler eşzamansızdır, ancak daha fazla verimlilik için birlikte gruplandırılabilirler.

Bu nedenle, "Al/Ayarla/Al/Ayarla/Al/Ayarla" yerine "Çağrıları Birlikte Ayarla" ve "Çağrıları Birlikte Al"ı gruplamak her zaman daha iyidir.

Zaman uyumsuz çağrılar, işlev yürütülürken çağıran iş parçacığı engellenmezse daha verimlidir, ancak Get ve Set'i karıştırırsanız bu avantajları kaybedersiniz.

Umarım bu çeviriye rağmen yardımcı olur.

Alexey Mavrin :

Anladığım kadarıyla Get eşzamanlıdır, çünkü istenen sonucu döndürür. Ancak kuyrukta asenkron Setler varsa, onlarla senkronize olmamız gerekir.

Kuyrukta yalnızca Gets varsa, gecikme olmaz.

Herkese teşekkürler. Yavaş yavaş içeri girmeye başlıyorum.

Bu tür gecikmelerin gerçek resmi şimdi ortaya çıkıyor.

Anladığım kadarıyla (yanlışsa lütfen düzeltin):

Ana iş parçacığından Get yöntemi çağrıldığında, ana iş parçacığına paralel olarak yürütülen grafiğin iş parçacığına bir istek yapılır. Ancak grafik dizisi, Set yöntemleriyle doğrudan ana diziden kontrol edilir ve ana dizi, grafiğin mevcut özelliklerini zaten bilmelidir, ancak yalnızca grafik dizisinin mevcut durumunu bilmiyor ve son olup olmadığından emin değil. komutlar yürütülmüştür. Bu nedenle, önceki tüm komutların işlendiğinden emin olmak için bu istek gerçekleşir. Get yöntemi eşzamanlı olduğundan, paralel grafik akışından bir yanıt gelene kadar bekler. Gecikmelere neden olan budur.

Kafam karışmıyorsa, o zaman soru ortaya çıkıyor:

Paralel iş parçacığı, komutunun yürütüldüğünü ana iş parçacığına neden rapor edemiyor ve ardından ana iş parçacığı komutu tamamlandı olarak işaretleyecek ve dahili grafik özellikleri tablosunu güncelleyecek? Ve istek üzerine Get, bu tablodaki verileri isteksiz ve paralel bir akış olmadan yayınlar. Ayrıca, grafiğin mevcut durumunu anlamak için, grafiğin paralel dizisine hala yürütülmemiş komutların olduğunu veya tüm komutların yürütüldüğünü belirten bir bayrak göndermek mümkün olacaktır. Bu şema ile gecikme olmayacak.

iCanvas sınıfımda yaklaşık olarak benzer bir mekanizma uygulanmaktadır.

Tuvalin piksel koordinatlarını grafiğin zamanı ve fiyatı ile ilişkilendirmek için inanılmaz derecede yavaş bir ChartXYToTimePrice işlevi olduğunda ve CHARTEVENT_CHART_CHANGE olduğunda dahili statik değişkenlerini güncelleyen analog XYToTimePrice işlevi oluşturulduğunda bu mekanizmayı gösteren bir gösterge. olay meydana gelir ve bu statik tablo grafiği parametrelerinin verilerine dayanarak istenen parametreleri hesaplar.



Dosyalar:
TestSpeedXY.mq5  16 kb
 
Bu konuyla ilgili olmayan yorumlar " MQL5 MT5 MetaTrader 5 Yeni Başlayanlardan Sorular " bölümüne taşındı.
 
Nikolai Semko :

Herkese teşekkürler. Yavaş yavaş içeri girmeye başlıyorum.

...
Bu doğru. Ve Renat'ın dediği gibi cache sisteminin mql tarafında uygulanması gerekiyor. Belki bu, platform tarafında uygulanabilir, ancak mümkün olan en performanslı çok kanallı mimarinin başarısını tehlikeye atabilir.
 
Alain Verleyen :
Bu doğru. Ve Renat'ın dediği gibi cache sisteminin mql tarafında uygulanması gerekiyor. Belki bu, platform tarafında uygulanabilir, ancak mümkün olan en performanslı çok kanallı mimarinin başarısını tehlikeye atabilir.

Açık.
Bu önbellek sisteminin nasıl uygulanacağını anlayanlar için çok daha iyi ve anlamayanlar için daha da kötü.

 
Nikolai Semko :

Bir benzetme kullanmaya çalışacağım, eğer işe yaramazsa, öyle olsun.
Hepsi çok abartılı ve doğru değil, ama yine de.


Bir siz varsınız - boyaları belirleyen ve sanatçıya getiren müşteri ve getirdiğiniz boyaları kullanan ve onlarla birlikte tuval üzerine çizen bir sanatçı var.
Boyaları getirdikten sonra işinize gitmekte özgürsünüz: iş, ev, çalışma, ....
Ayrıca istediğiniz zaman sanatçıya gelebilir ve çalışmanın sonucunu inceleyebilirsiniz.
Ancak teftişe gelirseniz ve sanatçı o anda resim yapıyorsa, eserini tamamlamasını beklemek zorunda kalacaksınız.


Etkileşimin en uygun yolu, sanatçıya ihtiyaç duyduğu tüm boyaları getirmek, çizmesini istemek ve ardından işine devam etmektir.
Sonunda, gerekirse, inceleme için sanatçıya gerektiği kadar gelin - tuvale erişim ücretsiz olacaktır.

Etkileşimin en uygun olmayan yolu, boyayı birer birer sanatçıya getirmek ve hemen sonucu talep etmek, her seferinde sanatçının işini tamamlamasını beklemektir.

2009 yapımına kıyasla 2485'teki sorun nedir:
Sanatçı size daha da yaklaştı ve incelemeler için daha az seyahat süresi bir artı.
Ancak sanatçı, yandan "yarı zamanlı çalışma" için çok zaman harcamaya başladı.
Eskiden aynı sıklıkta “yarı zamanlı işler” alırdı ama şimdi sanatçının “yarı zamanlı işi”ne geçebilmek için işin tamamlanması için çok uzun süre beklemek gerekiyor.

 
Nikolai Semko :

Açık.
Bu önbellek sisteminin nasıl uygulanacağını anlayanlar için çok daha iyi ve anlamayanlar için daha da kötü.

Aynen öyle
 
Sergey Dzyublik :


Etkileşimin en uygun yolu, sanatçıya ihtiyaç duyduğu tüm boyaları getirmek, çizmesini istemek ve ardından işine devam etmektir.
Sonunda, gerekirse, inceleme için sanatçıya gerektiği kadar gelin - tuvale erişim ücretsiz olacaktır.

Benim düşünceme göre, en iyi şey, sanatçıyla, bir sonraki resmi bitirir bitirmez, müşteri tarafından görüntülenebilecek olan web sitesinde tamamlanmış belirli çalışmayı hemen işaretleyeceği ve ayrıca yapması gerektiği konusunda hemfikir olmaktır. mevcut durumunu belirtin - yarı zamanlı işlerle meşgul veya ücretsiz.
Daha sonra müşteri, sanatçıyı ziyaret etmeden hangi resmin hazır olduğunu ve hangisinin olmadığını ve sanatçının şu anda meşgul mü yoksa boş mu olduğunu bilecek ve bir sonraki göreve gönderilebilecek. Ve muayene ile boş yere sallanmaya gerek kalmayacak. Bu hem müşteri hem de sanatçı için zamandan ve sinirlerden tasarruf sağlayacaktır.

 
Nikolai Semko :

1) Bence en uygunu sanatçıyla anlaşmak,
2) bir sonraki resmi bitirir bitirmez,
3) daha sonra, müşteri tarafından görüntülenebilecek olan web sitesinde tamamlanmış belirli çalışmayı hemen işaretleyecektir,
4) Ayrıca, yarı zamanlı veya ücretsiz işlerle meşgul olup olmadığını sitede mevcut durumunu belirtmesi gerektiğini kabul edin.
5) Ve sonra müşteri .... sanatçının o anda meşgul mü yoksa boş mu olduğunu bilecek ve bir sonraki görevi gönderebilecek.
6) Ve muayene ile boş yere sallanmaya gerek kalmayacak. Bu hem müşteri hem de sanatçı için zamandan ve sinirlerden tasarruf sağlayacaktır.

1) Sanatçı planlarınızı bilmiyor ve siz de geleceği bilmiyorsunuz...
2) Resim yok, tüm manipülasyonların ve "yarı zamanlı çalışmanın" devam ettiği bir tuval var.
3) Ana kaynakla ilgisi olmayan süreçleri analojiye sokmak - analojinin ne olduğunu ve neden gerekli olduğunu anlamamak.
4) Sanatçı geleceği bilmiyor ve eğer bir inceleme için gelmeniz gerekiyorsa, yolculuk sırasında durumu yüzlerce kez değişebilir.
5) Boyaları istediğiniz zaman getirebilirsiniz, sanatçının durumu ve işi ne olursa olsun, her zaman aynı miktarda zaman alır.
6) Yine analojinin ne olduğunu ve neden gerekli olduğunu anlamamak...