Sembra che questo servizio sia in sospeso
Ottimizzerò codice c e cpp per prestazioni e bassa latenza
Pakistan
Ingegnere di sistemi a basso livello e performance
Informazioni su questo servizio
Il tuo codice C/C++ è corretto, ma manca di raggiungere gli obiettivi di latenza, throughput o runtime?
Prima faccio il profiling, isolando dove la CPU effettivamente spende tempo, poi ottimizzo il collo di bottiglia misurato e verifico il risultato con benchmark riproducibili prima/dopo.
Lavoro su:
- Cache CPU e layout della memoria: SoA vs AoS, allineamento, allocazione arena, riduzione di heap-churn
- SIMD/vectorization: AVX2, AVX-512, ARM NEON
- Multithreading, atomici, lock contention e false sharing
- Ispezione del disassembly, vectorization del compilatore e inline asm mirato quando giustificato
Strumenti: perf, FlameGraph, Callgrind, Google Benchmark, Compiler Explorer
Le consegne includono una patch/commit Git pulito, prove di benchmark e note tecniche. Il codice modificato viene controllato con ASan/UBSan dove supportato e mantenuto senza warning sotto flag di compilazione rigorosi. Il tuo codice rimane privato e non viene mai incollato in strumenti pubblici. NDA benvenuto.
Prima di ordinare, sentiti libero di inviare il tuo benchmark, output perf o la sezione di codice rilevante. Esaminerò il contesto e confermerò se il workload è adatto e quale ambito ha senso.
Tecnologia di sviluppo:
C/C++
Il mio portfolio
FAQ
Traduzione automatica.
Come fai a sapere che l'aumento di velocità è reale e non rumore del benchmark?
Utilizzo misurazioni ripetute in condizioni controllate, con affinità/isolation della CPU dove il supporto è disponibile. Riporto risultati riproducibili prima/dopo piuttosto che una singola esecuzione migliore, e le affermazioni di performance sono legate al workload e al comando di benchmark concordati.
E se il mio codice non può essere vettorizzato con AVX2, AVX-512 o NEON?
Allora non forzerò SIMD. Se branching, dipendenze, allineamento, layout dei dati o dimensione del workload rendono inefficace la vectorization, lo documenterò e punterò a aree di maggior valore come la località della cache, overhead di allocazione, branching, sincronizzazione o cambiamenti algoritmici.
Come verifici che l'ottimizzazione non comprometta la correttezza?
Le modifiche vengono validate rispetto ai tuoi test esistenti, output di riferimento, risultati deterministici o un controllo di correttezza concordato. Dove supportato, il codice modificato viene anche verificato con ASan e UBSan, e il codice toccato rimane senza warning sotto flag di compilazione rigorosi.
Quanto copre il limite di LOC del mio codice?
Il limite di LOC si applica alla regione critica per le performance sotto indagine, non all'intero repository. Grandi basi di codice possono comunque adattarsi a un pacchetto se il profiling isola il collo di bottiglia a un sottosistema o kernel più piccolo. Invia il workload prima di ordinare e confermerò l'ambito appropriato.
E se il collo di bottiglia è I/O, attesa o l'algoritmo piuttosto che l'esecuzione CPU?
Identificherò questo nell'audit piuttosto che forzare un'ottimizzazione a livello CPU che non migliorerebbe il tuo metric. Riceverai le prove, il vero collo di bottiglia e il prossimo passo di maggior valore.
Puoi lavorare con codice proprietario o sotto NDA?
Sì. Posso lavorare con codice proprietario e requisiti di NDA/sicurezza ragionevoli. Il codice sorgente viene gestito in un ambiente di sviluppo locale isolato e non viene mai incollato in strumenti pubblici. Rimuovi credenziali, API key, certificati, dati clienti e segreti non correlati prima di condividere.

