"CopyTicks"in Test Edilmesi - sayfa 23

 
Renat Fatkhullin :

İhtiyacınız olanı kendinize bir kez büyük bir derinliğe indirmek ve ardından mikrosaniyeler içinde yakındaki önbellekten yalnızca yenisini indirmek en uygunudur.

Diskte bir arıza ile her derin istekte bulunursanız, elbette suçlanacaksınız.

Eylül ayının ilk haftası için kene geçmişini almanın en uygun yolunun kodunu gösterebilir misiniz?
 
fxsaber :
Eylül ayının ilk haftası için kene geçmişini almanın en uygun yolunun kodunu gösterebilir misiniz?

Kendin yaz, bu zor bir iş değil.

Kesin tarihler için yerel dizide sorgulayın ve saklayın. Önbellek dışında çalışırken optimallik yoktur. Optimizasyon, yalnızca önbellekten son 4096 tıklamayı sürdürürken anlamlıdır.

 
Renat Fatkhullin :

Kendin yaz, bu zor bir iş değil.

Kesin tarihler için yerel dizide sorgulayın ve saklayın.

Bu nedenle, gerekli aralıkta kaç kene olduğunu önceden bilmek imkansızdır. Sayı parametresi tanımlı değil. Sorunun olduğu yer burası.

Sayım = trilyon ayarlanarak Eylül başından itibaren TÜM geçmişi indirmek elbette mümkündür. Ardından ikili arama ile dizideki bitiş tarihini bulun ve kesin.

Ama bu trilyon hiç de teknik bir yaklaşım değil. from, to ile bir işlev aşırı yüklemesine ihtiyacınız var. Veya dizine göre veritabanına erişim.

 
Renat Fatkhullin :

Optimizasyon, yalnızca önbellekten son 4096 tıklamayı sürdürürken anlamlıdır.

Yardımdan:

Düzenleme hızı: terminal, hızlı erişim için önbellekteki her sembol için son 4096 onay işaretini saklar (çalışan camlı semboller için - 65536 işaret)

Ve yaklaşık 65536 kene (bir bardakla) - daha uygun olmaz mı?
 

Bir sonraki derlemede CopyTicks için iyileştirmeler hazırlayacağız:

  • belki de 128k tike kadar otomatik genişleme ile hızlı önbellekleri uyarlanabilir hale getireceğiz, bu da program yazmayı kolaylaştıracak (devam etmekten zarar görmezsiniz, ancak genellikle gerekli miktarı hızlı önbellekten hemen alırsınız)
  • & ile arasındaki kesin tarihlerle tırnak işaretleri alabilmeniz için işlevin ek bir sürümünü ekleyin
 
Renat Fatkhullin :

Bir sonraki derlemede CopyTicks için iyileştirmeler hazırlayacağız:

  • belki de 128k tike kadar otomatik genişleme ile hızlı önbellekleri uyarlanabilir hale getireceğiz, bu da program yazmayı kolaylaştıracak (devam etmekten zarar görmezsiniz, ancak genellikle gerekli miktarı hızlı önbellekten hemen alırsınız)
  • & ile arasındaki kesin tarihlerle tırnak işaretleri alabilmeniz için işlevin ek bir sürümünü ekleyin

Teşekkür ederim!

& to'dan tamamen indirilmiş bir geçmiş, muhtemelen boş bir GetLastError ile gösterilecektir.

Lütfen şimdi (ve belirttiğiniz iyileştirmelerin tanıtılmasıyla) o zamandan önce olan bir onay işareti almanın son derece zor olduğunu unutmayın. Bu nedenle, sayımı da negatif yapmayı öneriyorum - yalnızca geleceğe (sağda) değil, aynı zamanda geçmişe de (== 0'dan olduğu gibi) işaretler isteyin.

O zaman önceki geçmişi sorgulamak her zaman uygun ve optimal olacaktır (uygulamanız).

 
fxsaber :

Teşekkür ederim!

Görünüşe göre, tamamen indirilen geçmiş hakkında, sıfır GetLastError konuşacak.

Lütfen şimdi (ve belirttiğiniz iyileştirmelerin tanıtılmasıyla) o zamandan önce olan bir onay işareti almanın son derece zor olduğunu unutmayın. Bu nedenle, sayımı da negatif yapmayı öneriyorum - yalnızca geleceğe (sağda) değil, aynı zamanda geçmişe de (== 0'dan olduğu gibi) işaretler isteyin.

O zaman önceki geçmişi sorgulamak her zaman uygun ve optimal olacaktır (uygulamanız).

CopyTicks() aşırı yüklemelerini diğer Copy...() işlevleriyle aynı şekilde hemen yapmak daha iyidir.
 
Alexey Kozitsyn :
CopyTicks() aşırı yüklemelerini diğer Copy...() işlevleriyle aynı şekilde hemen yapmak daha iyidir.
O zaman varsayılan sayımı terk etmeniz ve başlamanız gerekir.
 
fxsaber :
O zaman varsayılan sayımı ve itibaren terk etmeniz gerekir.

Niye ya? CopyBuffer'ı örnek olarak kullanarak , şimdi şuna sahibiz:

int CopyBuffer (  
    int         gösterge_belirteç , // gösterge tutamacı  
    int         buffer_num , // gösterge arabellek numarası  
    tarih saat    start_time , // hangi tarihten itibaren  
    int         say , // ne kadar kopyalanacak  
    çift      tampon[]                // verilerin kopyalanacağı dizi  

);

Count ve from (start_time) vardır.

Bunu eklemenizi önerirsiniz:

int CopyBuffer (  
    int         gösterge_belirteç , // gösterge tutamacı  
    int         buffer_num , // gösterge arabellek numarası  
    tarih saat    start_time , // hangi tarihten itibaren  
    tarih saat    stop_time , // hangi tarih  
    çift     tampon[]                // verilerin kopyalanacağı dizi  

);

Böylece her iki yönde de kopyalayabilirsiniz, değil mi? Yalnızca tarih saat yerine - ulong (mikrosaniye cinsinden).

Gelecekte, başka amaçlar için böyle bir aşırı yük eklemek kalacaktır:

int CopyBuffer (
    int         gösterge_belirteç , // gösterge tutamacı
    int         buffer_num , // gösterge arabellek numarası
    int         start_pos , // nereden başlamalı
    int         say , // ne kadar kopyalanacak
    çift      tampon[]                // verilerin kopyalanacağı dizi
);

Ve bu kadar.

 
fxsaber :
O zaman varsayılan sayımı ve itibaren terk etmeniz gerekir.

İlk başta dikkatsizce okudum ... evet, zorunda kalacağım. Ne olmuş? Geliştiriciler önbelleği genişletirse, yalnızca yeterince büyük bir onay geçmişi yüklenirken daha yavaş olacaktır ve bunun genellikle yapılması gerekmez. Ve gerçek zamanlı yüklemeyi hiçbir şekilde etkilemeyecektir (önbellekten alınacaktır).

Varsayılan ayarları kaydetmeye çalışmaktansa, tarihten bugüne yükleme yapmanın çok daha önemli olduğunu düşünüyorum.