2010-06-08 18 views
2

Je connais les outils des utilitaires Xcode pour la surveillance et l'analyse comparative des applications, mais j'aimerais tester quelques implémentations différentes (de bas niveau) de composants de bibliothèque, de préférence sur osx/linux/les fenêtres. Existe-t-il un cadre pour l'analyse comparative des codes, semblable aux tests unitaires? Je voudrais juste quelques fonctions api pratiques pour signaler avec précision l'heure et l'utilisation de la mémoire.Benchmarking de code multiplateforme simple

Répondre

0

Malheureusement, le benchmarking (et le timing en particulier) est très spécifique à la plate-forme.

Cependant, je pense que boost::date_time prend en charge les horodatages nanosecondes sur au moins Windows, OS X et Linux, ce qui pourrait être un bon point de départ.

L'utilisation de la mémoire est difficile à mesurer si des bibliothèques partagées sont impliquées, mais si vous ne voulez pas vous en préoccuper, la manière la plus simple de suivre l'utilisation de la mémoire est d'utiliser une des nombreuses implémentations tracing malloc .

Aucun de ces outils n'est proche de la facilité d'utilisation des outils dépendant de la plate-forme comme valgrind (+ KCachgrind) ou DTrace, qui ont tous l'avantage d'être entièrement externes au programme.

+0

Valgrind semble intéressant et est supporté sous Linux et OSX. Je pense que je vais commencer à écrire quelques programmes simples avec la bibliothèque de temps de boost. –

+0

OS X Leopard est supporté, mais la dernière fois que j'ai vérifié le support de Valgrind pour Snow Leopard est encore un peu cassé! – James