2016-07-03 1 views
0

Nous avons un cadre interne qui gère notre journalisation, l'accès aux données, crypto .. vous le nommez. Je voudrais commencer à comparer la performance, disons la fonctionnalité de journalisation à d'autres systèmes traditionnels, c'est-à-dire nlog, log4net, serilog. Évidemment, je commencerais par le fonctionnement de tous les systèmes, comme la connexion à un fichier ou une console.Comment comparer l'infrastructure de journalisation avec BenchmarkDotNet?

Est-ce que BenchmarkDotNet serait applicable dans une telle situation? La plupart des exemples et des articles que j'ai lus indiquent des scénarios d'utilisation dans des boucles très serrées et utilisent principalement des E/S, comme la mémoire et le processeur, et non le disque. En tant qu'exercice, j'ai écrit un test xunit pour comparer l'écriture à la console en utilisant la fonctionnalité Baseline, mais les tests n'ont jamais été terminés et j'ai fini par tuer le processus, ce qui m'a conduit à ce Post sur SO.

Si j'utilise BenchmarkDotNet dans le mauvais sens, y a-t-il un autre test qui correspond mieux à ce que j'essaie d'accomplir?

Merci, Stephen

Répondre

3

BenchmarkDotNet est le plus approprié pour microbenchmarking du code lié au processeur. Il y a tellement de facteurs qui peuvent affecter le code lié à l'IO que je ne considère pas la microbenchmarking comme une excellente approche. Au lieu de cela, je suggérerais si possible que vous intégrez chaque cadre dans votre application et mesurez la performance dans des conditions aussi réalistes que possible ... y compris une condition de «défaillance catastrophique» ou quelque chose où la diagraphie est susceptible de prendre un martèlement . Testez également avec un "enregistreur nul" qui ne fait rien (et ne fait rien le plus tôt possible) afin que vous puissiez déterminer une sorte de ligne de base. Cela vous dira seulement comment ces cadres de journalisation se comportent pour votre application spécifique - mais c'est la chose la plus importante pour vous de découvrir, je suggérerais.