Optimisation C : différence réelle entre malloc et calloc sur un Ryzen 7 ?
Optimisation C : différence réelle entre malloc et calloc sur un Ryzen 7 ?
Je bosse sur un algo de traitement d'images en C. Est-ce que calloc vaut vraiment le coup par rapport à malloc + memset sur un CPU moderne ? J'ai fait des tests mais les résultats sont contradictoires...
Sauvegardez, bon sang
-
la_manon31
- Messages : 358
- Inscription : jeu. sept. 28, 2023 7:24 pm
Re: Optimisation C : différence réelle entre malloc et calloc sur un Ryzen 7 ?
Sur un Ryzen 7 5800X, j'ai gagné 3% de perf en passant à calloc pour des gros tableaux (>1Mo). Mais ça dépend de l'alignement mémoire. T'as activé les optimisations (-O3) ?
Le cloud c'est l'ordi de quelqu'un d'autre
Re: Optimisation C : différence réelle entre malloc et calloc sur un Ryzen 7 ?
Moi je reste sur malloc perso. calloc fait une vérif de overflow que tu payes en cycles CPU. Pour l'image, utilise des pools mémoire si tu peux !
Re: Optimisation C : différence réelle entre malloc et calloc sur un Ryzen 7 ?
@12 oui -O3 activé, mais je travaille sur des buffers de 512Ko max. @201 les pools c'est intéressant, t'as un exemple d'implémentation ?
Sauvegardez, bon sang
-
la_manon31
- Messages : 358
- Inscription : jeu. sept. 28, 2023 7:24 pm
Re: Optimisation C : différence réelle entre malloc et calloc sur un Ryzen 7 ?
Pour 512Ko la diff sera négligeable. Par contre vérifie ton cache L3, sur Ryzen la latence varie selon comment tu strides en mémoire !
Le cloud c'est l'ordi de quelqu'un d'autre