Articles of performance

Est-il raisonnable d’intégrer python avec c pour des performances?

J’aime utiliser python pour presque tout et je me suis toujours dit que si pour une raison quelconque je devais trouver un goulot d’étranglement dans mon code python (en raison des limitations de python), je pourrais toujours utiliser un script C intégré à mon code. Mais, alors que je commençais à lire un guide sur […]

Comptage de l’occurrence du personnage dans la tranche dans Go

Ok, alors j’ai frappé un mur de briques. Edit: utiliser bytes.IndexByte() dans ma fonction count() permet de fonctionner presque deux fois plus vite. bytes.IndexByte() est écrit en assembleur au lieu de Go. Pas encore la vitesse C, mais plus près. J’ai deux programmes, l’un en C et l’autre en Go, qui comptent tous les nouveaux […]

Calculer un ordre de grandeur rond

Pour un projet simple, je dois rendre lisible les grands nombres (4294967123, par exemple), je n’écris donc que les premiers chiffres avec un préfixe (4294967123 -> 4.29G, 12345 -> 12.34K, etc.) Le code (simplifié) ressemble à ceci: const char* postfixes=” KMGT”; char postfix(unsigned int x) { return postfixes[(int) floor(log10(x))]; } Cela fonctionne, mais je pense […]

Localité Spaciale en boucles

D’après ce que je comprends, la localité spatiale a à voir avec la mémoire proche utilisée dans un proche avenir. Cependant, je me demandais si une boucle est exécutée plusieurs fois, cela mène-t-il à une bonne localité spatiale? Merci d’avance et désolé si je suis difficile à comprendre.

Un pointeur indirectionnel est-il plus coûteux qu’un conditionnel?

Un pointeur indirectionnel (pour récupérer une valeur) est-il plus coûteux qu’un conditionnel? J’ai observé que la plupart des compilateurs décents peuvent précalculer l’indirection d’un pointeur à des degrés divers – éventuellement en supprimant la plupart des instructions de twigment – mais ce qui m’intéresse est de savoir si le coût d’un indirection est supérieur au […]

Dans la déclaration C if-else, la condition qui a le plus de chances d’être vraie devrait-elle venir en premier?

Il m’est arrivé d’écrire une instruction if-else, la condition serait fausse au maximum (vérifiez si un pointeur statique est affecté ou non) Lequel serait le mieux à optimiser pour le compilateur? Ou sont-ils simplement égaux? La fonction étant appelée très souvent, il est essentiel d’optimiser ses performances. void foo() { static int * p = […]

Utilisez clock () pour compter le temps d’exécution du programme

J’utilise quelque chose comme ceci pour compter combien de temps cela prend mon programme du début à la fin: int main(){ clock_t startClock = clock(); …. // many codes clock_t endClock = clock(); printf(“%ld”, (endClock – startClock) / CLOCKS_PER_SEC); } Et ma question est la suivante: dans la mesure où plusieurs processus sont en cours […]

Dynamique-rapide-math

Est-il possible d’activer / désactiver sélectivement -ffast-math pendant l’exécution? Par exemple, créer les classes FastMath et AccurateMath avec la classe de base commune Math, afin d’être en mesure d’utiliser les deux implémentations lors de l’exécution? Idem pour faire clignoter les subnormals jusqu’à zéro, etc. En particulier, je ne sais pas si la compilation avec -ffast-math […]

Est-il possible d’utiliser vtune sur certains extraits de code dans un binary et non dans un binary complet?

J’ajoute l’utilisation d’une petite bibliothèque à un grand logiciel existant et j’aimerais parsingr (dans le détail du localisateur que les appels rdtsc () ou gettimeofday in & out) le temps système et son atsortingbution à la petite bibliothèque. En utilisant des choses comme rdtsc (), je peux avoir une idée de la latence des fonctions […]

baisse importante des performances avec gcc, peut-être liée à inline

Je rencontre actuellement un effet étrange avec gcc (version testée: 4.8.4). J’ai un code orienté performance, qui tourne assez vite. Sa vitesse dépend en grande partie de l’inclusion de nombreuses petites fonctions. Comme il est difficile d’introduire plusieurs fichiers .c dans le répertoire ( -flto n’est pas encore largement disponible), j’ai conservé de nombreuses petites […]