Ho un'applicazione C++ in cui la funzione "cancella" è lenta da eseguire. Cosa potrebbe causare questo e dove dovrei iniziare la mia ricerca di una soluzione?C++ "delete" è lento. Dove dovrei guardare prima?
Background: codice
Questa C++ è in un file ARX in esecuzione all'interno di AutoCAD, che è fondamentalmente solo una DLL.
Il computer specifico in cui l'eliminazione è lenta esegue AutoCAD 2011, Windows 7, 64-bit. Gli ARX per AutoCAD 2011 devono essere compilati utilizzando Visual Studio 2008 Service Pack 1.
Il computer con il problema è il computer di un cliente. Non ha alcuna versione di Visual Studio installata su di esso.
Sul mio computer di sviluppo, il codice non ha alcun problema in AutoCAD 2011.
Per provare, ho un po 'di codice che elimina una lista collegata. Sul computer con il problema, occorrono 0,7 secondi per eliminare l'elenco. Nei computer e nelle configurazioni senza problemi, lo stesso codice richiede 0,02 secondi. I tempi specifici non sono importanti - il grande diverso tra i due numeri è.
Ho fatto in modo di eseguire la stessa versione del codice su entrambi i computer, quindi non è un problema di rilascio contro il debug build.
Quanti oggetti c'erano nella lista e qual era la loro dimensione? –
Condividi il codice di prova che stai usando per il benchmark. – karlphillip
E stai collegando staticamente/dinamicamente su entrambi i sistemi? E per favore conferma che non stai confrontando le build di debug/release? –