Articles of performance

sum optimisée d’un tableau de doublons en C

J’ai une mission où je dois suivre un programme et le rendre plus efficace en termes de temps. le code d’origine est: #include #include // You are only allowed to make changes to this code as specified by the comments in it. // The code you submit must have these two values. #define N_TIMES 600000 […]

Un calcul plus rapide de la valeur efficace en C?

J’écris un logiciel pour un petit microcontrôleur 8 bits en C. Une partie du code consiste à lire la valeur ADC d’un transformateur de courant (ZCT), puis à calculer la valeur efficace. Le courant traversant le ZCT est sinusoïdal, mais il peut être déformé. Mon code comme suit: float adc_value, inst_current; float acc_load_current; // accumulator […]

zlib, deflate: combien de mémoire allouer?

J’utilise zlib pour compresser un stream de données texte. Les données de texte sont présentées en morceaux et pour chaque morceau, la fonction deflate() est appelée, flush étant défini sur Z_NO_FLUSH . Une fois que tous les morceaux ont été récupérés, la fonction deflate() est appelée avec la valeur flush définie sur Z_FINISH . Naturellement, […]

Comment transposer efficacement une masortingce de bits 2D

Je n’arrête pas de trébucher sur ce problème (par exemple dans cette question ). Étant donné un tableau / tableau / tableau de bits 2D sous la forme d’un tableau de types entiers primitifs, par exemple un tableau de long . Pour simplifier, nous pouvons supposer une masortingce carrée, par exemple un tableau de 64 […]

Comment l’initialisation conditionnelle est-elle gérée et s’agit-il d’une bonne pratique?

J’essaie de choisir entre plusieurs pratiques possibles. Dites, ma fonction a un certain nombre de blocs if (), qui fonctionnent sur des données, qui leur sont propres. Dois-je déclarer et initialiser les données locales (pour le bloc) à l’intérieur du bloc? Cela a-t-il un coût de performance d’exécution (en raison de l’allocation d’exécution dans la […]

API de compteur de performances matérielles pour Windows

J’aimerais utiliser un compteur de performances matérielles , en particulier des processeurs x86, pour obtenir des erreurs de cache ou des prédictions erronées. Les compteurs de performance sont très utilisés dans les profileurs avancés tels qu’Intel VTune. Veuillez ne pas confondre les compteurs de performance sur les systèmes d’exploitation Windows. Pour utiliser ces compteurs dans […]

Fonction d’incrément de code gris

Sans utiliser aucun compteur externe ni aucun autre état, je recherche une fonction efficace qui prend une valeur à n bits (32 bits ou environ) et renvoie la valeur suivante dans un code Gray . C’est: int fn(int x) { int y = gray_to_binary(x); y = y + 1; return binary_to_gray(y); } Mais bien que […]

Estimation de la consommation élecsortingque en fonction de l’parsing du temps d’exécution / de la taille du code

J’ai développé et testé un programme C sur mon PC et je souhaite maintenant donner une estimation de la consommation d’énergie requirejse pour que le programme fonctionne en une seule fois. J’ai analysé le temps d’exécution de l’application et des appels de fonction invidiuels au sein de l’application et je connais la taille du code […]

Comment dois-je renvoyer le résultat d’une fonction d’opération binary dans une bibliothèque C?

Je travaille sur une bibliothèque C, dont une partie traite de certains types mathématiques et de leur manipulation. Chaque type a une fonction constructeur / destructeur d’usine qui les alloue et les libère dynamicment. Par exemple: /* Example type, but illustrates situation very well. */ typdef struct { float x; float y; float z; } […]

Antlr 4 parsingr un grand fichier c prend une éternité

J’ai un gros fichier c-code (> 9000 LoC) et tente de l’parsingr en utilisant cette grammaire: https://github.com/antlr/grammars-v4/blob/master/c/C.g4 J’ai attendu plus d’une heure avant d’abandonner. La machine est un Core 2 Duo L9400 avec 4 Go de RAM. La taille maximale de java vm-heap-size est définie sur 2 Go. Il ne produit aucune erreur d’parsing, mais […]