Profiler et de la Mémoire des Outils d'Analyse 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 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, dont 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:
-
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.
-
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.
-
ProDelphi seul peut le profil de la fonction ou de la procédure. AQTime peut aller jusqu'à des lignes individuelles. Plus 2 pour AQTime.
-
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 à présent 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.
- Désolé, je n'ai que l'expérience avec AQTime.
- Pensez-vous qu'il vaut la dépense?
- Vous devriez essayer de la durée limitée de la démo de AQTime. J'ai eu beaucoup de problèmes avec elle sur mon ordinateur portable qui est fixé à 120 DPI - certains dialogues ont été effectivement inutilisable car les boutons ont été coupées. Qui n'inspire pas beaucoup de confiance, de soutien et dit qu'ils ne pouvaient rien faire à ce sujet... 🙁
- AQTime m'a fait de drôles de questions après avoir été installé automatiquement avec Delphi XE2 mise à Jour 4. J'ai dû désinstaller AQTime pour être en mesure d'utiliser la plupart des fonctions simples de Delphes, comme la "Classe Complète à l'emplacement du Curseur" ne fonctionnait pas jusqu'à ce que j'ai désinstallé AQTime.
- C'est gratuit et facile à utiliser (par rapport à ProDelphi). Il va également vers le bas à la ligne de code de la précision. Mais je doute que les résultats dans ce cas précis. delphitools.info/downloads/samplingprofiler-changelog
Vous devez vous connecter pour publier un commentaire.
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
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. 😉
FastMM Usage Tracker
, (+1)J'ai fait un open source profiler pour Delphi:
http://code.google.com/p/asmprofiler/
Il n'est pas parfait, mais il est gratuit et open source :-).
La principale raison que j'ai fait c'était parce que j'ai raté exacte de l'arbre d'appel.
Par exemple, ProDelphi stocke uniquement un résumé et le compte total de tous les appels,
vous ne pouvez pas voir ce qui appelle une procédure spécifique à un moment précis (ou de temps
la durée).
Et il a un diagramme de temps, de sorte que vous pouvez voir comment la durée de l'appel changé au fil du temps.
Aussi jeter un Oeil à Eric Grange du Profileur d'Échantillonnage
J'ai été très heureux avec AQtime à des fins de profilage.
Avoir utilisé les deux GpProfile et AQTime j'ai trouvé à la fois d'être efficace à trouver ce que l'appel de méthode est à l'origine d'un goulot de bouteille.
Cependant AQTime pouvez aussi me dire quelle ligne de code qui est à l'origine, sans aucune modification de mon code source (bien qu'il fonctionne mieux avec TD32 de débogage et de débogage dcus).
J'ai récemment utilisé pour accélérer une routine d'environ 30x (en raison de la mauvaise utilisation d'une bibliothèque interne de la fonction)
Cependant, je n'ai pas eu à payer pour moi-même!
Nous utilisons AQTime Pro et sont heureux avec elle. Smartbear ont récemment publié un totalement gratuit AQTime standard edition. La plupart des fonctions sont toujours là, mais ils ont bien sûr enlevé un peu
Je suis d'accord avec vous sur l'interface de ProDelphi, mais il fait un assez bon travail que nous sommes heureux de rester avec elle. Nous avons seulement besoin de profil très occasionnellement, lorsque nous avons un important problème de performance, et il est toujours de nous aider à trouver le problème assez rapidement. Très bonne valeur pour l'argent, et Michael semble assez bon sur la tenue à jour pour les nouvelles versions.
Une chose que je suggère, c'est que car il ne nécessite le code à insérer, à avoir tout le code dans une sorte de VCS est inestimable. Lorsque nous avons besoin de votre profil, nous avons:
Quelqu'un a déjà essayé le générateur de profils de la composante à Delphes Région? Il est gratuit avec la source et c'est writeup dit:
Il est vrai, à des fins de profilage je m'ennuie de Primoz' GpProfile, et n'ai pas trouvé un bon remplaçant. J'ai essayé une fois AQTime, mais n'était pas trop content pour le prix.
Pour le suivi des fuites de mémoire et épineux les accès à la mémoire cependant je ne pouvais pas être plus heureux que je suis avec FastMM4.
J'ai été en utilisant ProDelphi pour un long temps & trouver qu'il répond à mes besoins.
J'ai été en mesure de réaliser de superbes résultats dans le système des améliorations de performances en utilisant les données qu'il fournit.
Pour les petits projets, la version gratuite est très bien.
Pour les grands projets, vous aurez besoin de l' (Payé) de la version pro.
Pour un profiler, vous pourriez essayer SmartInspect de Gurock Logiciel. Je n'ai jamais utilisé GpProfile, mais rapidement, jetant un coup d'oeil à son ensemble de fonctionnalités m'a rappelé de SmartInspect. Il est intéressant de noter qu'il n'a pas la prétention d'être un profiler, mais il semble être comme beaucoup plus d'un comme GpProfile (à moins que quelque chose m'échappe). Il supporte Delphi 2009 et a un Essai gratuit et est un peu moins cher AQTime.
Note: SmartInspect est un enregistreur plutôt qu'un profiler.
La FastMM4 gestionnaire de mémoire mentionné dans cette ancienne répondre ("Comment surveiller ou de visualiser une fragmentation de la mémoire d'une application delphi") tient à jour une liste de toutes les attributions qui peut être interrogée au moment de l'exécution (et affichées dans une grille à l'aide du câble de démonstration de l'application). Il ne montrer pas exactement l'objet de fuites, comme les statistiques sont par la taille du bloc. Mais il peut être utile pour long-temps la surveillance des applications en production, par exemple des serveurs ou des services. Je suis actuellement en train de l'intégrer dans un (commercial) du serveur d'applications web cadre de la "VisualMM' add-on.