Erreurs, bugs, questions - page 2873

 

Erreur critique pendant l'exécution

struct pack(8) A {
typedef void (*fn)();
        fn f;
};
void OnStart() {}

Résultat : échec du chargement de l'EX5

 
A100:

L'alignement des structures affecte-t-il la vitesse d'exécution ?

 
fxsaber:

L'alignement des structures affecte-t-il la vitesse d'exécution ?

C'est le cas dans certains cas, voici une citation :"Dans la plupart des cas, vous n'avez pas à vous soucier de l'alignement, car l'alignement par défaut est déjà optimal.Mais dans certains cas, une amélioration significative des performances ou un gain de mémoire peuvent être obtenus en spécifiant un alignement personnalisé pour les structures de données".

 
A100:

C'est le cas dans certains cas, voici une citation :"Dans la plupart des cas, vous n'avez pas à vous soucier de l'alignement, car l'alignement par défaut est déjà optimal.Cependant, dans certains cas, vous pouvez obtenir des améliorations significatives des performances ou des économies de mémoire en spécifiant un alignement personnalisé pour les structures de données."

Un seul exemple.

 
fxsaber:

Au moins un exemple de ce type.

J'ai un alignement par nécessité - citation de la documentation :"L'alignement des champs de la structure peut être nécessaire lors de l'échange de données avec des bibliothèques tierces (*.DLL), dans lesquelles un tel alignement est appliqué".

Essayez de jauger toutes les valeurs du pack et comparez la vitesse

 
A100:

Essayez de jouer avec toutes les valeurs de pack et comparez les vitesses.

Nous devons décider du code à mesurer.

Si je comprends bien, l'alignement des classes n'est pas fourni. C'est-à-dire qu'il est tout à fait possible que lorsqu'on travaille avec un tableau d'objets de classe (et non de pointeurs), il soit raisonnable de remplacer les champs de classe par une structure alignée.

Bref, je ne suis pas sur le sujet.

 
fxsaber:

Si je comprends bien, l'alignement des classes n'est pas fourni. C'est-à-dire qu'il est possible que, lorsqu'on travaille avec un tableau d'objets de classe (et non de pointeurs), il soit raisonnable de remplacer les champs de classe par une structure alignée.

Maintenant que j'ai essayé les classes d'emballage, la taille change.

 

Une question sur l'achat d'une bibliothèque (pas un conseiller) sur le marché.

Je veux utiliser la bibliothèque pour mes recherches. Par conséquent, il devrait fonctionner sur tous les comptes et terminaux.

Est-ce possible pour les bibliothèques du marché ?

 
fxsaber:

Au moins un exemple de cela.

Je doute que beaucoup de gens utilisent l'optimisation des données de nos jours, tout au plus les développeurs de jeux, mais même là, tout le monde a ses propres moteurs de jeux prêts à l'emploi qui sont déjà optimisés.

J'ai cherché un peu partout, mais s'il y a des recommandations spécifiques, je chercherai icihttps://www.ibm.com/support/knowledgecenter/ru/.

J'ai essayé de faire une recherche, mais cela n'a pas fonctionné - il existe de nombreuses variantes de requêtes, celle-ci est plus proche du sujethttps://www.ibm.com/support/knowledgecenter/ru/ssw_aix_72/performance/cache_tlbs.html.

J'ai cherché "structure pack" et "structure performance".



si vous vérifiez, il doit s'agir d'une pod-structure et vous devez l'écrire de la manière la plus déformée possible, c'est-à-dire que vous prenez tous les types de données (long, int, short, char,double,float) et créez 15 champs et mélangez les champs par types de données, de manière à pouvoir aligner ces champs avec la directive pack au moins sur la limite du mot informatique

Vous pouvez également essayer de copier des structures, de les passer comme paramètres à des fonctions et de modifier le contenu des champs.


mais, à mon avis, vous aurez une différence palpable si la taille totale de ces données (tableau de structures) est d'au moins quelques mégaoctets pour remplir le cache du processeur autant que possible.

 

Bonjour !

En optimisant l'EA, j'ai découvert qu'il effectue des transactions non sanctionnées !

C'est-à-dire que lorsque je lance l'optimisation, l'EA démarre automatiquement en temps réel.

Bien que le problème puisse être résolu en activant l'interdiction de l'algotrading ou en supprimant manuellement l'EA, l'effet me semble indésirable.

Regards,

Andrey A. Kotrin
Dossiers :
Screenshot.jpg  1158 kb