54 votes

Outils d'analyse de profil et de mémoire pour Delphi

J'ai récemment mis à niveau à partir de Delphi 4 de Delphi 2009. Avec Delphi 4 j'avais été en utilisant GpProfile par Primoz Gabrijelcic d'un profileur et de la Mémoire Sleuth par la Puissance Turbo pour la mémoire de l'analyse et de la fuite de débogage. Les deux ont bien fonctionné pour moi. Mais j'ai maintenant besoin de nouveaux outils permettant de travailler avec Delphi 2009.

Le chef de file dans le Profilage/outils d'Analyse pour Delphi par une large marge est évidemment AQTime par AutomatedQA. Ils ont récemment même englouti Memproof par Atanas Soyanov, j'ai compris, était une excellente mémoire libre et l'outil d'analyse, et intégré ses fonctions dans la AQTime. Mais AQTime est très cher pour un programmeur. Il coûte en fait plus de la mise à niveau de Delphi 2009 coût!

Donc ma question est: existe-il d'autres options moins coûteuses à faire de profilage et d'analyse de la mémoire dans les versions actuelles de Delphi que vous êtes heureux avec et de recommander, ou devrais-je mordre la balle et de payer le gros lot pour AQTime?


Addenum: Il semble que le début de answerers indiquant que le FastMM manager déjà inclus dans Delphi est très bon pour trouver les fuites de mémoire.

Alors, y at-il de bonnes alternatives pour le code source de profilage?

Je suis curieux de savoir ProDelphi par Michael Adolph qui est à moins d'un sixième du coût de la AQTime. L'utilisez-vous? Est AQTime la peine de payer six fois plus?


Addenum 2: j'ai téléchargé la version d'essai de deux AQTime et ProDelphi.

AQTime était un peu écrasante, et un peu déroutant au premier abord. Il a fallu quelques heures pour trouver des astuces nécessaires pour le brancher.

ProDelphi était très semblable à la GpProfile que je suis habitué. Mais ses fenêtres sont en désordre et de confusion, et ce n'est pas tout à fait aussi beau que GpProfile.

Pour moi, les grandes différences semblent être:

  1. ProDelphi les modifications de votre code. AQTime ne le fait pas. Modification du code peut corrompre vos données si quelque chose va mal, mais mon expérience avec GpProfile est qu'il ne m'est jamais arrivé. Plus un pour AQTime.

  2. ProDelphi exige de vous tourner à l'optimisation off. Mais ce que vous voulez de profil est votre programme avec l'optimisation, la façon dont il va être exécuté. Plus un pour AQTime.

  3. ProDelphi seul peut le profil de la fonction ou de la procédure. AQTime peut aller jusqu'à des lignes individuelles. Plus 2 pour AQTime.

  4. ProDelphi a une version gratuite qui permettra de profil 20 routines, et sa version pro coûte moins de 100 $USD. AQTime est de 600$. Plus 4 pour ProDelphi.

Le score est maintenant de 4-4. Qu'en pensez-vous?


Addenum 3: Primoz Gabrijelcic est la planification pour obtenir GpProfile de travailler à nouveau. Voir ses commentaires sur certaines des réponses ci-dessous. Il sur StackOverflow que Gabr.


Addenum 4: Il semble que il peut y avoir un profileur de solution, après tout. Voir André open source asmprofiler, décrit ci-dessous.

35voto

François Points 17557

Pour le prix, vous ne pouvez pas battre FastMM4 comme une mémoire tracker. Il est simple à utiliser mais puissant et bien intégré à Delphi.
Je suppose que vous savez que, sans le téléchargement, l'installation ou changer quoi que ce soit d'autre, juste de mettre cette ligne

ReportMemoryLeaksOnShutDown := True;

n'importe où dans votre code, permettra à des rapports de base de fuites de mémoire.
Si vous avez besoin de plus comme le crash de l'information, EurekaLog est un très bon produit que nous utilisons. MadExcept a aussi une bonne réputation...

Pour le profilage plus précisément, nous avons AQTime.

Comme pour gpProfile, vous pouvez essayer et bug gabr sur DONC pour une mise à jour... ou aller et mise à jour gpProfile vous-même comme il est open source. ;-)

24voto

Mohammed Nasman Points 8548

Jetez également un coup d'œil au Sampling Profiler d'Eric Grange

8voto

Nick Bradbury Points 1247

Je suis très heureux avec AQtime pour le profilage.

4voto

Gerry Coll Points 4723

Ayant utilisé à la fois GpProfile et AQTime, j'ai constaté que les deux systèmes étaient efficaces pour déterminer quelle méthode appelait un cou de bouteille.

Cependant, AQTime peut également me dire quelle ligne de code est la cause, sans apporter de modification à mon code source (bien que cela fonctionne mieux avec le débogage et le débogage de TD32).

Je l'ai récemment utilisé pour accélérer une routine d'environ 30 fois (en raison d'une mauvaise utilisation d'une fonction de bibliothèque interne)

Cependant, je n'ai pas eu à payer moi-même!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X