2010-06-22 12 views
7

Ho letto molti post qui dando consigli di profilazione, ma ho bisogno di chiedere questo.Come devo il profilo visivo C++ express?

Da quello che posso dire, Visual C++ Express non genera un file di debug che viene utilizzato dai programmi di profiler. Ho provato AMD Codeanalyst e sembrava funzionare bene, tranne che nessuna delle routine nel mio programma sono state identificate - solo un sacco di "moduli non identificati".

Sono nuovo del C++. Sono abituato al semplice profiler usato da Python. Semplice, suppongo, perché la lingua è interpretata.

Apprezzo qualsiasi approfondimento.

P.S .: La rotazione del volante è la derivata della rotazione della vettura?

+1

Per sviluppi gravi, è necessario pagare la tassa Microsoft o passare a una piattaforma aperta. Visual Studio Express è solo un esempio per farti appassionare. Per quanto riguarda la ps: ne dubito; l'angolo delle ruote influenzerà l'attrito con la strada in modo non lineare. –

+0

Potete raccomandare un open source simile o capace come Visulal Studio per C++? –

+1

Sono troppo un luddite per usare un IDE, quindi non posso raccomandare nulla da solo; il mio ambiente preferito di una shell, gli strumenti GNU e un editor di sorgenti di base non saranno per tutti i gusti. Ho sentito persone parlare di Eclipse e Codeblocks, ma non ho idea se siano utili o come si confrontino con Visual Studio. –

risposta

7

In primo luogo, la velocità angolare polare dell'auto deve essere proporzionale alla velocità dell'auto e alla posizione angolare del volante (in prima approssimazione).

In secondo luogo, non c'è quasi un professore o blogger o autore di libri che ti dirà questo, ma se vuoi vedere cosa sta facendo il codice e ottimizzarlo, the hands-down simplest way is this.

Aggiunto: I programmatori hanno una forte tendenza a presumere che qualsiasi strumento di profilatura automatizzata svolgerà un lavoro migliore rispetto alla tecnica manuale, ma che dipende dai dettagli di esattamente ciò che fanno. Molti di loro implementano ciò che è popolare piuttosto che ciò che è più efficace. Il risultato sono alcuni problemi di prestazioni che vengono persi, mettendo un limite alla velocità che si può ottenere. Here is a list of common misconceptions che non riescono a trovare problemi di prestazioni.

Alcuni profiler fanno farlo quasi a destra, tra cui RotateRight/Zoom e LTProf.

+0

Non so di professori, blogger o autori, ma è esattamente come oprofile per Linux funziona. Anche se il campionamento viene eseguito automaticamente, molte volte al secondo. –

+0

@Mike Seymour: si potrebbe pensare così, ma è piuttosto complicato e, seguendo il documento, sembra che soffra di molti dei problemi descritti qui: http://stackoverflow.com/questions/1777556/alternatives-to-gprof/ 1779343 # 1779343 –

+1

@Mike Seymour: ... È necessario 1) ottenere campioni casuali di stack di un thread anche durante l'I/O, 2) essere in grado di ignorare i campioni durante l'input dell'utente o meglio consentire all'utente di controllare il campionamento tramite hot-key, 3) riportare per riga (non per funzione) la percentuale di campioni che contengono quella linea (ignorando la ricorsione), 4) idealmente lascia che l'utente veda i singoli campioni dello stack. Infine, i campioni non devono essere presi in gran numero o ad alta frequenza. In effetti, ** lsstack ** è un modo perfettamente utile per prenderli. –

0

Sei sicuro? IIRC, Visual Studio Express può creare il file .PDB, anche se potrebbe essere necessario chiedergli di generare informazioni di debug per te se stai usando una build di rilascio. (Deve farlo - altrimenti il ​​debugger di Visual Studio non funzionerebbe!)

+0

Bene, VSE crea alcuni file .pdb. Dovrò fare ancora un po 'di cose con Codeanalyst. Il debugger di Visual Studio non funziona con VS express. –

+0

@Peter Stewart: Err ... sì, il debugger di VS funziona in VS express.È possibile impostare un punto di interruzione ed eseguire il programma e funzionerà correttamente. –

+0

Perdonami. Sì hai ragione, stavo pensando al profiler di VS. –

0

Non è difficile scrivere il proprio profilo. O potresti prendere un open source che ha qualche prova dietro di esso. Si potrebbe voler guardare il mio profiler open source, chiamato cRunWatch

+0

Sembra un profiler pulito, e mi piace anche il programma unittest. Lo guarderò oltre. –

Problemi correlati