Il semble que ce service ait été suspendu
J'optimiserai le code c et cpp pour la performance et la faible latence
Pakistan
Ingénieur en systèmes de bas niveau et performance
À propos de ce service
Votre code C/C++ est-il correct, mais ne répond pas à ses objectifs de latence, débit ou temps d'exécution ?
Je commence par profiler, isoler où le CPU passe réellement du temps, puis j'optimise le goulot d'étranglement mesuré et je vérifie le résultat avec des benchmarks reproductibles avant/après.
Je travaille sur :
- Cache CPU et disposition mémoire : SoA vs AoS, alignement, allocation arena, réduction des opérations sur le tas
- SIMD/vectorisation : AVX2, AVX-512, ARM NEON
- Multithreading, atomiques, contention sur les verrous et partage faux
- Inspection du désassemblage, vectorisation du compilateur et inline asm ciblé lorsque justifié
Outils : perf, FlameGraph, Callgrind, Google Benchmark, Compiler Explorer
Les livrables incluent un patch/commit Git propre, des preuves de benchmark et des notes techniques. Le code modifié est vérifié avec ASan/UBSan lorsque supporté et maintenu sans avertissements sous des flags de compilation stricts. Votre code reste privé et n'est jamais collé dans des outils publics. NDA accepté.
Avant de commander, n'hésitez pas à m'envoyer votre benchmark, sortie perf ou section de code pertinente. Je vais examiner le contexte et confirmer si la charge de travail est adaptée et quel périmètre a du sens.
Technologie de développement:
C / C++
Mon portfolio
FAQ
Traduction automatique
Comment savez-vous que l'accélération est réelle et non un bruit de benchmark ?
J'utilise des mesures répétées dans des conditions contrôlées, avec affinité/isolement CPU lorsque la plateforme le supporte. Je rapporte des résultats reproductibles avant/après plutôt qu'une seule exécution optimale, et mes affirmations de performance sont liées à la charge de travail et à la commande de benchmark convenues.
Et si mon code ne peut pas être vectorisé avec AVX2, AVX-512 ou NEON ?
Dans ce cas, je ne forcerai pas la SIMD. Si la branche, les dépendances, l'alignement, la disposition des données ou la taille de la charge de travail rendent la vectorisation inefficace, je le documente et je cible des domaines à plus forte valeur ajoutée tels que la localité du cache, la surcharge d'allocation, la branche, la synchronisation ou des changements algorithmiques.
Comment vérifiez-vous que l'optimisation ne compromet pas la correction ?
Les modifications sont validées par rapport à vos tests existants, sorties de référence, résultats déterministes ou une vérification de correction convenue. Lorsque supporté, le code modifié est également vérifié avec ASan et UBSan, et le code modifié est maintenu sans avertissements sous des flags de compilation stricts.
Quelle partie de mon code la limite LOC couvre-t-elle ?
La limite LOC concerne la région critique pour la performance sous investigation, pas l'ensemble de votre dépôt. Les grandes bases de code peuvent toujours correspondre à un package si le profilage isole le goulot d'étranglement à un sous-système ou noyau plus petit. Envoyez la charge de travail avant de commander et je confirmerai le périmètre approprié.
Et si le goulot d'étranglement est l'I/O, l'attente ou l'algorithme plutôt que l'exécution CPU ?
Je l'identifierai lors de l'audit plutôt que de forcer une optimisation au niveau CPU qui ne ferait pas avancer votre métrique. Vous recevrez la preuve, le vrai goulot d'étranglement et la prochaine étape à la plus haute valeur.
Pouvez-vous travailler avec du code propriétaire ou sous NDA ?
Oui. Je peux travailler avec du code propriétaire et des exigences raisonnables de NDA/sécurité. La source est traitée dans un environnement de développement local isolé et n'est pas collée dans des outils publics. Veuillez supprimer les identifiants, clés API, certificats, données clients et secrets non liés avant de partager.

