La tela è forte! - pagina 66

 
Per alcuni compiti, come il ridimensionamento dell'interfaccia, la funzione di ridimensionamento dell'immagine può essere notevolmente semplificata.
Un esempio di funzione per caricare una risorsa ad una data dimensione.

bool  ImageFromResource(const string _resource,const int _w,const int _h,uint &_pic[])
{
   uint lp[];
   int wr, hr;
   if(_w<2 || _h<2) return(false);
   if(!ResourceReadImage(_resource,lp,wr,hr))
   {
      Print("Еrror loading resource: ",_resource);
      return(false);
   }
   if(_w!=wr || _h!=hr)
   {
      //resize image
      ArrayResize(_pic,_w*_h);
      double sw=(double)_w/wr;
      double sh=(double)_h/hr;
      //
      for(int _y=0; _y<_h; _y++)
         for(int _x=0; _x<_w; _x++)
            _pic[_y*_w+_x]=lp[int(_y/sh)*wr+int(_x/sw)];
   }else ArrayCopy(_pic,lp);
   return(true);
}

Confronto visivo degli algoritmi di ridimensionamento, con la versione semplificata sulla destra.


 
fxsaber:

La banale minimizzazione di tali terminali riduce il grande carico della CPU quasi a zero. Non è chiaro perché una GUI così irrazionalmente dispendiosa in termini di CPU sia necessaria.

I programmatori devono essere ringraziati per questo,

per esempio, il codec video più popolare madvr è in pausa e mangia come se stesse facendo mining)

 
fxsaber:

Sì. Non credo che gli sviluppatori facciano mai funzionare cinque terminali in parallelo, dove Market Watch ad alta frequenza ha centinaia di caratteri ciascuno.

Risulta molto sciocco quando una banale minimizzazione di tali terminali riduce un grande carico di CPU a quasi nulla. Non è chiaro perché sia necessaria un'interfaccia grafica che consuma irrazionalmente la CPU.

E pensate che il rendering della GUI per 300 volte al secondo sia gratuito?

Sarai il primo ad affermare che disegniamo male, non finiamo di disegnare o saltiamo il disegno.

Se stiamo parlando di un desktop, hai bisogno di una normale scheda video veloce - masticherà l'alto tasso di rendering. Minimizzare le finestre può ridurre il carico sulla maggior parte delle applicazioni che disegnano frequentemente.


Per informazione, MetaTrader può fare 100-300 FPS a causa del grande flusso di quotazioni al secondo. Non 1-2 fotogrammi al secondo come i programmi normali, ma in realtà centinaia di fotogrammi al secondo a seconda del flusso di quote.

 
Renat Fatkhullin:

Pensate che disegnare gui 300 volte al secondo sia gratis?

Sarete i primi a sostenere che stiamo disegnando male, non finendo di disegnare o saltando il disegno.

Se stiamo parlando di un desktop, hai bisogno di una normale scheda video veloce - masticherà l'alto tasso di rendering. Minimizzare le finestre può ridurre il carico sulla maggior parte delle applicazioni che disegnano frequentemente.


Per informazione, MetaTrader può fare 100-300 FPS a causa del grande flusso di quotazioni al secondo. Non 1-2 fotogrammi al secondo come i programmi normali, ma in realtà centinaia di fotogrammi al secondo a seconda del flusso di quote.

Renat hai testato tutti i nuovi processori che sono ora al livello di 10 processori Intel e zen2 più veloci per core che abbiamo in esecuzione qui, giusto?

Per quanto ne so Intel non è brava nel multithreading, Amd parallelizza bene il multithreading, è una buona idea
 

Tela - Fico!

Come aiuta nel trading?

 
Renat, mentre sei qui, per favore rispondi
 
prostotrader:

Tela - Fico!

Aiuta nel commercio?

 
Yury Kulikov:
Per alcuni compiti, come il ridimensionamento dell'interfaccia, la funzione di ridimensionamento dell'immagine può essere notevolmente semplificata.
Un esempio di una funzione per caricare una risorsa ad una data dimensione.

Confronto visivo degli algoritmi di ridimensionamento, con la versione semplificata sulla destra.

Beh sì, Yuri, sono d'accordo. Un algoritmo così superveloce ha diritto alla vita.
Ma, naturalmente, ha una grave perdita di qualità. Specialmente nelle immagini, dove ci sono transizioni di colore nette.
Ecco uno script, per esempio, che lo dimostra chiaramente. A destra questo algoritmo veloce, e a sinistra il mio (circa 4-10 volte più lento).
Un esempio di riduzione di uno screenshot normale:


A proposito, ho capito perché c'erano questi ammiccamenti. Stavo ricampionando la bitmap su ogni fotogramma, il che era stupido e questa era la ragione. Ora l'ho rimosso e tutto funziona senza problemi.

File:
Scaling.gif  12254 kb
scaling2.zip  290 kb
 
Fast235:

Renat hai testato tutti i nuovi processori, che ora sono al livello di 10 processori Intel e zen2 più veloci per core che abbiamo qui, vero?

Per quanto ne so Intel non è brava nel multithreading, AMD parallelizza bene il multithreading, è una buona soluzione

Tutti i processori moderni sono abbastanza veloci.

Soprattutto se avete molta memoria e unità NVMe per i compiti terminali. Una scheda grafica di fascia media è altamente raccomandata.

Nella nostra azienda ci rifiutiamo di intel e compriamo solo AMD Epyc per server e workstation da più di un anno.

 
Renat Fatkhullin:

Tutti i processori moderni sono abbastanza veloci. Soprattutto se c'è molta memoria e dischi NVMe.

Per il terminale, una scheda grafica di fascia media è altamente raccomandata.

Nella nostra azienda ci rifiutiamo di Intel e da più di un anno compriamo solo AMD Epyc per server e workstation.

grande)