Kütüphaneler: MultiTester - sayfa 25

 
fxsaber:

KB hatasından yararlanın: zip dosyası ilk sürümü içerir.

Ne yazık ki, içinde 12/25/20'den dosyalar var.
Kasım 2019'daki dosyalar hala bende ama şimdiden...
Sizde hiç var mı?
 
Edgar Akhmadeev:
Sende var mı?

Yalnızca Aralık 2019 için bir tane buldum. MTTester eski işlevleri silmiş gibi görünmüyor.

 
fxsaber:

Sadece Aralık 2019 için bulundu. MTTester'da eski işlevleri sildiğimi sanmıyorum.

Belki, en azından bir fikir şeklinde - Uzman Danışman optimizasyonunun parametrelerini koddan nasıl ayarlayabilirim?
Muhtemelen uzun zaman önce kafam karıştı ve böyle bir olasılık yok.
 
Edgar Akhmadeev:
Belki, en azından bir fikir şeklinde - Uzman Danışman optimizasyonunun parametreleri koddan nasıl ayarlanır?
Muhtemelen uzun zaman önce olduğu için kafam karıştı ve böyle bir olasılık yok.

Sadece bu tür olasılıklar.



Ancak hiçbir şey ortak pano üzerinden paralel çalışmayı engellemez. Sadece ek bir kontrol yapın.

 
fxsaber:

Ancak ortak bir pano aracılığıyla paralel çalışmayı engelleyen hiçbir şey yoktur. Sadece ekstra bir kontrol yapın.

Bu denediğim ilk şeydi. COMMON'da dosya semaforunda hata ayıklamak için birkaç gün harcadım, ancak kararlı bir çalışma elde edemedim. Belki de dahili dosya fonksiyonları olması gerekenden biraz daha farklı zamanlama yapıyordur.
Belki de dosyaları WinAPI, paylaşılan bellek veya hatta semafor API (eminim bir tane vardır, belki biri bana söyleyebilir; MutEx hemen aklıma geldi, bunun hakkında düşüneceğim) aracılığıyla denemeliyim.
Eğer Lock ve Release fonksiyonlarımı incelemek isterseniz (kısalar), yarından sonra gönderebilirim. Olmaz mı?
 
Edgar Akhmadeev:
İlk denediğim şey buydu. COMMON'da dosya semaforunda hata ayıklamak için birkaç gün harcadım, ancak tutarlı bir şekilde çalışmasını sağlayamadım. Belki de dahili dosya fonksiyonları olması gerekenden biraz daha farklı zamanlama yapıyordur.
Belki de dosyaları WinAPI, paylaşılan bellek veya hatta semafor API (eminim bir tane vardır, belki biri önerebilir; MutEx hemen aklıma geldi, düşüneceğim) aracılığıyla denemeliyim.
Kilitleme ve Serbest Bırakma işlevlerimi analiz etmek isterseniz (bunlar kısa), yarından sonraki gün gönderebilirim. Hayır mı?

Her şeyi berbat ettiniz! Tampon aracılığıyla Terminal'e giden yolu içine ittiğiniz bir string-giriş girin. Ayarları girdikten sonra, onları okuyun ve doğru olup olmadıklarını kontrol edin. Özellikle, bu string girişi ile. Kontrol başarıyla tamamlanır tamamlanmaz Başlat düğmesine basın.


Hatta benzer bir şey daha yapılır.

  static bool SetSettings2( string Str, const int Attempts = 5 )
  {
    bool Res = false;

    for (int j = 0; (j < Attempts) && !Res; j++)
    {
      string Str1;
      string Str2;
      string Str3;

      Res = MTTESTER::SetSettings(Str) && MTTESTER::GetSettings(Str1) &&
            MTTESTER::SetSettings(Str) && MTTESTER::GetSettings(Str2) &&
            MTTESTER::SetSettings(Str) && MTTESTER::GetSettings(Str3) &&
            (Str1 == Str2) && (Str1 == Str3);
    }

    return(Res);
  }
 
fxsaber:

Çok mantıklı konuştunuz! Tampon aracılığıyla Terminal'e giden yolu içine ittiğiniz bir string-giriş girin. Ayarları girdikten sonra, onları okuyun ve doğru olup olmadıklarını kontrol edin. Özellikle, bu string girişi ile. Kontrol başarıyla tamamlanır tamamlanmaz Başlat düğmesine basın.

Zekice davrandığımdan değil, sadece çok açık konuşuyorum. Çoklu erişim semaforlar demektir.
Bir fikir istedim ve aldım. Teşekkür ederim!
 

GA'nın Hızlandırılması.

Çerçeve modundaki Uzman Danışman, Temsilcilerden OnTester alır. 100-1000 geçiş için iyi bir şey bulunmazsa, Durdur'a basarız.

Optimizasyon büyüklük sırasına göre hızlandırılabilir.
 
fxsaber:
Optimizasyonu büyüklük sırasına göre hızlandırabilirsiniz.

Gerçek tiklerde (bir ay) 4,5 saat içinde 470 optimizasyon (her biri farklı bir sembol üzerinde) yaptım.

 

1. Sleep2' de GetTickCount()'tan GetTickCount64()' e geçiş yapardım. Aksi takdirde taşma, mantığın tam olarak doğru olmadığını tehdit eder. Ve 64 varyantında belirgin şekilde daha az sıklıkta olur. Diğer çalışmalarda, belki siz de buna geçmelisiniz.


2. İkinci ArrayResize burada soruları gündeme getirir

      ::ArrayResize(Buffer, (int)Size / sizeof(T));

      kernel32::ReadFile(handle, Buffer, (uint)Size, Read, 0);
      Res = ::ArrayResize(Buffer, Read);

Büyük olasılıkla şöyle olmalı

Res = ::ArrayResize(Buffer, Read / sizeof(T));


3. Ve son olarak bazı farklı tipler

static void Sleep2( const uint Pause )


  static bool IsReady( const int Pause = 100 )
  {
    if (MTTESTER::IsReady2())
      MTTESTER::Sleep2(Pause);