Canvas üzerinde bir kitle kaynaklı proje yapma - sayfa 33

 
Реter Konow :

Bu örnekte, normal yenileme hızı. Yani yavaşlamıyor.

Görev Yöneticisi'nde Metatrader'ı (32 bit) görüyorum
Belki de frenleme sebebiniz sistemin kapasitesi ile ilgilidir?
Sonuçta, Metatrader artık sadece x64 için keskinleştirildi.
Ve geliştiricilere göre, 32 bit sürümler artık yayınlanmıyor.

Ve zaman uyumsuz veri işlemeyle ilgili sorun çözüldü mü?
 
Roman :

Görev Yöneticisi'nde Metatrader'ı (32 bit) görüyorum
Belki de frenleme sebebiniz sistemin kapasitesi ile ilgilidir?
Sonuçta, Metatrader artık sadece x64 için keskinleştirildi.
Ve geliştiricilere göre, 32 bit sürümler artık yayınlanmıyor.

Ve zaman uyumsuz veri işleme ile ilgili sorun çözüldü mü?

Sağladığım Nikolai örneğinin, özellikle hızlı bir şekilde yapılırsa, örnekteki nesnelerden herhangi birini taşırken gerçekten CPU yoğun olduğunu onaylıyorum. Yük %35-40 artar. Test 64 bit işlemci, Windows 7 64 bit ve MT5 64 bit üzerinde gerçekleştirildi.

Tartışmamızda eşzamansız veri işleme ile ne kastedilmektedir?

 
Roman :

Görev Yöneticisi'nde Metatrader'ı (32 bit) görüyorum
Belki de frenleme sebebiniz sistemin kapasitesi ile ilgilidir?
Sonuçta, Metatrader artık sadece x64 için keskinleştirildi.
Ve geliştiricilere göre, 32 bit sürümler artık yayınlanmıyor.

Ve zaman uyumsuz veri işlemeyle ilgili sorun çözüldü mü?

Tüm bu örnekler MT4 üzerindedir.

MT5 çok daha fazlasını çeker, ancak yanlış yeniden çizim durumunda (örneğin, sipariş defteri) işlemciyi de yükler (işaretli). Sorun, kesinlikle azaltılması gereken yeniden çizim sıklığı ve alanıdır. Bir hücreyi yeniden çizmeniz gerekiyorsa, o zaman sadece o. Aksi takdirde - kaynak israfı (örneğin, bir hücrenin saniyede 10 kez yeniden çizilmesi gerekiyorsa, tüm tuvalin yeniden çizilmesi işlemciyi "öldürür" ve yavaşlamak gerçekçi olmaz.). Ancak bu anlaşılabilir bir durumdur.

Açıklamama izin ver. Bir tablo hücresi üç nesnedir - taban, metin, simge. Hücrenin içeriği değişirse, tuvalin bir bölümü üzerinde 3 döngü yapmanız gerekir. İlk döngüde tabanı yeniden çiziyoruz, ikincide - metin, üçüncüde - simge. Sanki hücrenin alanını üç katına çıkardık. Tüm tuvali bu ruhla yeniden çizmeye devam ederseniz, güçlü bir yavaşlama olacaktır. Bu nedenle, yeniden çizilen tuval alanı üzerindeki döngü sayısını hesaba katmanız gerekir. Bu, basit ilkellerde görülmez, ancak karmaşık öğelerde belirgin hale gelir. Bazı öğeler 10 nesne içerir (düğmeler veya liste kutusu içeren bir giriş alanı veya bir pencere platformu) ve bunları yeniden çizerken tuval dizisinde kaç döngü yapmanız gerektiğini hesaplayabilirsiniz. Neyse ki, bu yeniden çizim yüksek tekrarlama oranı gerektirmez.

Eşzamansız işleme ile sorun çözülmez. Fikirler vardı ama henüz çözüm yok.

Genel olarak, tuval üzerinde bir GUI yaparsanız, ayrı ayrı yeniden çizilen öğelerden. Aksi takdirde, sınıra hızlı bir şekilde ulaşılacak ve bundan sonra basit işlemlerde frenleme fark edilecektir.

 
Алексей Барбашин :

Tartışmamızda eşzamansız veri işleme ile ne kastedilmektedir?

Eh, basit kelimelerle anladığım kadarıyla, asenkron (bir kaynak için yarış) veya çoklu iş parçacığı (adanmış kaynak).
Nikolay'ın örnek koduna bakmadım, ancak Metatrader'da eşzamansızlık ve çoklu okuma olmaması nedeniyle piksel yeniden çizim kodu eşzamanlı olarak yürütülüyor.
Ve Petera ile, çıktı verilerinin işlenmesi de büyük olasılıkla eşzamanlı olarak gerçekleştirilir. Ve her iki durumda da, büyük olasılıkla her şey hala döngüler halinde işleniyor.
Bu nedenle, işlemci üzerindeki yük artar. Şu anda daha az yük ile hızlı bir yanıt için veri işleme ve yeniden çizimi paralel hale getirmek gerekiyor.

 
Roman :

Eh, basit kelimelerle anladığım kadarıyla, eşzamansız (bir kaynak için yarış) veya çok iş parçacıklı (adanmış kaynak).
Nikolay'ın örnek koduna bakmadım, ancak Metatrader'da eşzamansızlık ve çoklu okuma olmaması nedeniyle piksel yeniden çizim kodu eşzamanlı olarak yürütülüyor.
Ve Petera ile, çıktı verilerinin işlenmesi de büyük olasılıkla eşzamanlı olarak gerçekleştirilir. Ve her iki durumda da, büyük olasılıkla her şey hala döngüler halinde işleniyor.
Bu nedenle, işlemci üzerindeki yük artar. Şu anda daha az yük ile hızlı bir yanıt için veri işleme ve yeniden çizimi paralel hale getirmek gerekiyor.

Pek değil)) Açıklamama izin verin: motorum bir kaynak aracılığıyla kullanıcı programına bağlanıyor. Yani, - kullanıcı uygulaması kendi iş parçacığında hesaplamalarını yapar ve verileri başka bir grafikte olabilecek (GUI'yi taşıyan) motora iletir. Parametre olaylarını işler ve bunları GUI'ye gönderir. Yani, işlemenin iki iş parçacığına bölünmesi ortaya çıkıyor. Ancak, yayınlayacağım yapıcıda bu olmayacak. Uygulama motoru kendi içinde barındıracak ve her şey tek bir iş parçacığında olacak. Ancak, işlemci üzerindeki yük aynı olacaktır. Basitçe, hızın işlevlerin yürütme sırasına bağımlılığı daha büyük hale gelecektir.

 
Реter Konow :

Pek değil)) Açıklamama izin verin: motorum bir kaynak aracılığıyla kullanıcı programına bağlanıyor. Yani, - kullanıcı uygulaması kendi iş parçacığında hesaplamalarını yapar ve verileri başka bir grafikte olabilecek (GUI'yi taşıyan) motora iletir. Parametre olaylarını işler ve bunları GUI'ye gönderir. Yani, işlemenin iki iş parçacığına bölünmesi ortaya çıkıyor. Ancak, yayınlayacağım yapıcıda bu olmayacak. Uygulama motoru kendi içinde barındıracak ve her şey tek bir iş parçacığında olacak. Ancak, işlemci üzerindeki yük aynı olacaktır. Basitçe, hızın işlevlerin yürütme sırasına bağımlılığı daha büyük hale gelecektir.

yine eskiler için... sözler, duyurular, gevezelik

çoktan unutulmuş bile - "çekirdek motor" iyi bir yazılım olarak yayınlandı mı? veya Bay gibi, yorumlara ek şeklinde

 
Roman :

Eh, basit kelimelerle anladığım kadarıyla, asenkron (bir kaynak için yarış) veya çoklu iş parçacığı (adanmış kaynak).
Nikolay'ın örnek koduna bakmadım, ancak Metatrader'da eşzamansızlık ve çoklu okuma olmaması nedeniyle piksel yeniden çizim kodu eşzamanlı olarak yürütülüyor.
Ve Petera ile, çıktı verilerinin işlenmesi de büyük olasılıkla eşzamanlı olarak gerçekleştirilir. Ve her iki durumda da, büyük olasılıkla her şey hala döngüler halinde işleniyor.
Bu nedenle, işlemci üzerindeki yük artar. Şu anda daha az yük ile hızlı bir yanıt için veri işleme ve yeniden çizimi paralel hale getirmek gerekiyor.

MT'deki herhangi bir işlem kesinlikle eşzamanlı olarak gerçekleştirilir ve geliştiriciler uygulamaya iş parçacığı ekleyene kadar bu gerçekten değiştirilemez.

Geliştiricilerin veritabanlarıyla, python ile, keskin ile çalışma açısından MT'nin işlevselliğini genişletmeye çalışması oldukça şaşırtıcı... ama hepsi aynı iş parçacığında her şeyi yapmayı teklif ediyor... İnanılmaz.

 
Maxim Kuznetsov :

yine eskiler için... sözler, duyurular, gevezelik

çoktan unutulmuş bile - "çekirdek motor" iyi bir yazılım olarak yayınlandı mı? veya Bay gibi, yorumlara ek şeklinde

Aferin. Senin gibilere karşı verdiğim mücadelede ben ilham alıyorum ama onlar hep kaybediyorlar.)) Bana enerji veriyorsun ve anlamıyorsun.

 
Maxim Kuznetsov :

yine eskiler için... sözler, duyurular, gevezelik

çoktan unutulmuş bile - "çekirdek motor" iyi bir yazılım olarak yayınlandı mı? veya Bay gibi, yorumlara ek şeklinde

Max, daha ölçülü ol.

 
Реter Konow :

Pek değil)) Açıklamama izin verin: motorum bir kaynak aracılığıyla kullanıcı programına bağlanıyor. Yani, - kullanıcı uygulaması kendi iş parçacığında hesaplamalarını yapar ve verileri başka bir grafikte olabilecek (GUI'yi taşıyan) motora iletir. Parametre olaylarını işler ve bunları GUI'ye gönderir. Yani, işlemenin iki iş parçacığına bölünmesi ortaya çıkıyor. Ancak, yayınlayacağım yapıcıda bu olmayacak. Uygulama motoru kendi içinde barındıracak ve her şey tek bir iş parçacığında olacak. Ancak, işlemci üzerindeki yük aynı olacaktır. Basitçe, hızın işlevlerin yürütme sırasına bağımlılığı daha büyük hale gelecektir.

Anlamını anladım, uygulama ayrı, GUI ayrı.
Ancak GUI'deki çıktı verilerinin işlenmesi hala eşzamanlı olarak gerçekleştirilir.
Yani, örneğin uygulama GUI'ye 10.000 öğe gönderir ve GUI tüm bu öğeleri sırayla işler.
Sorun bu. GUI'de gelen öğelerin işlenmesini ve çıktılarını paralel hale getirmek gereklidir. Temel, metin, simge.
Ayrıca, hücre başına üç döngü gerçekleştirilir.