2010-10-26 33 views
1

Je développe une application et je vais devoir prendre des mesures sur différents aspects, à savoir le temps passé dans chaque méthode et la pression sur les ressources système ainsi que le débogage occasionnel pour surveiller le traitement des données.Quelle méthode est la meilleure pour le débogage/profilage - .DLL ou code source?

Je vais utiliser an open source library pour les fichiers MIDI disponibles en tant que code source ainsi que pour un .DLL compilé. Je pensais qu'il serait plus facile pour moi d'utiliser le .DLL compilé car je ne ferai aucun changement à la bibliothèque et il me semble plus "net" que d'avoir un énorme projet de référence dans la fenêtre source. Je ne sais pas si cela aurait un effet sur le débogage et la mesure de la performance du code. Excuses si cette question a déjà été posée, j'ai essayé une recherche et rien d'apparemment pertinent n'est apparu.

Répondre

2

Cela dépend simplement si vous pensez que vous devrez déboguer du tout. Les mesures de performance sont moins un problème.

Notez également que vous pouvez simplement obtenir ce code source, le construire sur votre machine locale et référencer les dll (et avoir les fichiers pdb dans le même répertoire). Ensuite, vous serez en mesure de déboguer sans en ajoutant réellement le projet à votre solution. Ceci est toujours possible si vous avez ces trois choses:

  1. DLLs
  2. Les PDB créés lors de la construction des dll
  3. La source utilisée pour construire les dll

Mais, encore une fois. Si vous pensez que vous n'aurez pas à déboguer, utilisez les dll immédiatement. Vous pouvez toujours obtenir la source plus tard et la reconstruire.

+0

Bonne idée - obtenir la source mais la compiler séparément et en utilisant simplement les dll. +1 – David

1

Je trouve plus facile de tracer si j'ai la source parce que je peux voir pourquoi quelque chose ne fonctionne pas. De plus, je ne suis pas sûr que les compteurs de performance puissent être insérés dans une DLL compilée (mais je peux me tromper).

Cependant, si vous ne voulez pas le changer, et vous n'avez pas besoin de comprendre comment cela fonctionne en interne, il suffit d'utiliser la DLL. Je peux certainement voir le point de ne pas vouloir avoir toutes ces lignes de code joint si vous n'en avez pas besoin et que vous voulez juste utiliser la DLL.

Je sais que cette partie suivante n'est pas liée à la facilité de mise au point, mais elle est pertinente pour faciliter la maintenance.

Je n'aime pas non plus dll dans le contrôle de source quand je peux avoir le code actuel, en particulier pour les bibliothèques externes qui sont susceptibles de changer. Je ne peux pas vous dire combien de fois j'ai dû payer pour mettre à jour un composant ou apporter des changements drastiques à mon code parce que quelque chose devait être mis à jour.