La toile est cool ! - page 66

 
Pour certaines tâches, comme la mise à l'échelle de l'interface, la fonction de redimensionnement de l'image peut être grandement simplifiée.
Un exemple de fonction permettant de charger une ressource à une taille donnée.

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);
}

Comparaison visuelle des algorithmes de redimensionnement, avec la version simplifiée à droite.


 
fxsaber:

La minimisation triviale de ces terminaux réduit la charge importante du CPU presque à zéro. La raison pour laquelle une interface graphique aussi irrationnellement consommatrice de CPU est nécessaire n'est pas claire.

les programmeurs doivent être remerciés pour cela,

par exemple, le codec vidéo le plus populaire, madvr, est mis en pause et il mange comme s'il était minier)

 
fxsaber:

Oui. Je ne pense pas que les développeurs aient jamais fait fonctionner cinq terminaux en parallèle, où la surveillance du marché à haute fréquence a des centaines de caractères chacun.

Cela apparaît très bête lorsqu'une minimisation triviale de ces terminaux réduit à presque rien une charge CPU importante. La raison pour laquelle une interface graphique aussi irrationnellement consommatrice de CPU est nécessaire n'est pas claire.

Et vous pensez que le rendu d'une interface graphique 300 fois par seconde est gratuit ?

Vous serez le premier à prétendre que nous dessinons mal, que nous ne finissons pas de dessiner ou que nous sautons un dessin.

Si nous parlons d'un ordinateur de bureau, vous avez besoin d'une carte vidéo rapide normale - elle absorbera le taux de rendu élevé. La réduction des fenêtres permet de diminuer la charge de la plupart des applications qui font des dessins fréquents.


Pour information, MetaTrader peut faire 100-300 FPS en raison du flux important de cotations par seconde. Pas 1 à 2 images par seconde comme les programmes ordinaires, mais des centaines selon le flux de citations.

 
Renat Fatkhullin:

Pensez-vous que dessiner un gui 300 fois par seconde est gratuit ?

Vous serez le premier à prétendre que nous dessinons mal, que nous ne finissons pas de dessiner ou que nous sautons un dessin.

Si nous parlons d'un ordinateur de bureau, vous avez besoin d'une carte vidéo rapide normale - elle absorbera le taux de rendu élevé. La réduction des fenêtres permet de diminuer la charge de la plupart des applications qui font des dessins fréquents.


Pour information, MetaTrader peut faire 100-300 FPS en raison du flux important de cotations par seconde. Pas 1-2 images par seconde comme les programmes ordinaires, mais en fait des centaines d'images par seconde selon le flux de citations.

Renat, vous avez testé tous les nouveaux processeurs qui sont maintenant au niveau de 10 processeurs Intel et zen2 plus rapides par cœur que nous avons ici, n'est-ce pas ?

Pour autant que je sache, Intel n'est pas bon en multithreading, Amd parallélise bien le multithreading, c'est une bonne idée.
 

Canvas - Cool !

Comment cela aide-t-il dans le commerce ?

 
Renat, pendant que vous êtes ici, s'il vous plaît écrivez en retour
 
prostotrader:

Canvas - Cool !

Est-ce que ça aide dans le commerce ?

Oui

 
Yury Kulikov:
Pour certaines tâches, comme la mise à l'échelle de l'interface, la fonction de redimensionnement de l'image peut être grandement simplifiée.
Un exemple de fonction permettant de charger une ressource à une taille donnée.

Comparaison visuelle des algorithmes de redimensionnement, avec la version simplifiée à droite.

Eh bien oui, Yuri, je suis d'accord. Un tel algorithme super rapide a droit à la vie.
Mais, bien sûr, il a une sérieuse perte de qualité. Surtout dans les images, où les transitions de couleurs sont nettes.
Voici un script, par exemple, qui le démontre clairement. Sur le côté droit, cet algorithme rapide, et sur le côté gauche, le mien (environ 4 à 10 fois plus lent).
Un exemple de réduction d'une capture d'écran normale :


Au fait, j'ai compris pourquoi il y avait de tels clignements. Je rééchantillonnais le bitmap à chaque image, ce qui était stupide et c'était la raison. Maintenant, je l'ai enlevé et tout fonctionne bien.

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

Renat, vous avez testé tous les nouveaux processeurs, qui sont maintenant au niveau des 10 processeurs Intel et zen2 plus rapides par cœur que nous avons ici, n'est-ce pas ?

Pour autant que je sache, Intel n'est pas bon en multithreading, AMD parallélise bien le multithreading, c'est une bonne solution.

Tous les processeurs modernes sont assez rapides.

Surtout si vous disposez de beaucoup de mémoire et de disques NVMe pour les tâches terminales. Une carte graphique de milieu de gamme est fortement recommandée.

Dans notre entreprise, nous refusons les intels et achetons uniquement des AMD Epyc pour les serveurs et les stations de travail depuis plus d'un an maintenant.

 
Renat Fatkhullin:

Tous les processeurs modernes sont assez rapides. Surtout s'il y a beaucoup de mémoire et de disques NVMe.

Pour le terminal, une carte graphique de milieu de gamme est fortement recommandée.

Dans notre entreprise, nous refusons Intel et depuis plus d'un an, nous n'achetons que des AMD Epyc pour les serveurs et les stations de travail.

super)