Domanda

ero curioso di sapere se qualcuno ha qualche suggerimento per le biblioteche test delle prestazioni e frontend che produrranno belle tabelle grafiche per C ++ (come come gcov produce dati di copertura e non ci sono frontend là fuori per la visualizzazione dei dati copertura del codice). Essere in grado di produrre i grafici come:

http: / /download.eclipse.org/eclipse/downloads/drops/S-3.7M4-201012081300/performance/performance.php?fp_type=0

sarebbe abbastanza liscia. Usiamo CppUnit in questo momento per unit testing, quindi forse c'è qualcosa che si integra con quello.

Alcuni ulteriori informazioni:. Stiamo compilando su Linux (usiamo Ubuntu Lucid / Maverick) su Intel x86-64 macchine

È stato utile?

Soluzione

Alcuni suggerimenti:

  • Il quadro googletest C ++ è in grado di produrre report JUnit-compatibili.
  • Hudson può essere usato per eseguire i test. Si richiede solo che il C ++ applicazione può essere eseguito come un'applicazione console.
  • Il Hudson prestazioni Plugin grado di generare tabelle grafiche da rapporti di JUnit.
  • Ci sono molti altri plugin .

Altri suggerimenti

Su Linux è possibile provare il toolkit Valgrind. Valgrind include lo strumento che può callgrind profilo del tuo codice. KCachegrind visualizza l'uscita del cachegrind molto bene.

Alcune note si spera rilevanti dalla mia esperienza di questo genere di cose in risposte qui e qui .

Non c'è alcuna ragione per la configurazione CppUnit esistente combinata con qualcosa come il scoped_timer (vedi seconda di quanto sopra) e un po 'di post-elaborazione per alcuni grafici forse non dovrebbe soddisfare le vostre esigenze. Mentre io credo CppUnit include un plugin ( "Clocker"?), Che sarà il log out volte unittest, non credo che in realtà è che utile per questo tipo di test delle prestazioni, in pratica, perché si invariabilmente finisce per voler ora solo una parte di ogni test e non tutto il codice di impostazione.

Ci sono due framework di test delle prestazioni possono aiutare.

Entrambi sono ispirati da framework Google prova e fornire l'interfaccia di test delle prestazioni di sostegno, in modo che sia facile da trasportare il vostro googletest originale per Hayai o SkyPat .

SkyPat combina unit test e perf_evnet. Si estende il concetto di Google prova e fornisce un'interfaccia per l'accesso PMU. perf_event dà SkyPat conteggi di ciclo accurati che sono utili per strumenti sensibili alla varianza dei tempi, come compilatori. SkyPat può anche profilo di un pezzo di codice da eventi PMU (eq: cicli, istruzioni, riferimento della cache, cache miss, ecc .).

Hayai supporta diversi metodi di misurazione delle prestazioni di diversi sistemi operativi (Windows: QueryPerformanceCounter(), Linux: gethrtime(), Apple ( OSX, iOS):. mach_absolute_time()) nel suo framework di test delle prestazioni

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top