In AQTime für Delphi rühmt es sich, sehr schnell zu sein, um zu den Krisenherden zu kommen, indem man Bereiche und Trigger etc. verwendet. Aber es scheint mir, dass besonders wenn Sie sehr viel Code in den zu profilierenden Bereichen haben, die Ausführung langsamer wird auch wenn das Profiling NICHT aktiviert ist.Warum AQTime die Ausführung verlangsamt, selbst wenn das Profiling nicht aktiviert ist, und kann etwas dafür getan werden?
Zum Beispiel, wenn ich eine bestimmte Routine spät im Programmablauf profilieren möchte, aber nicht weiß, was dort heißt, würde ich denken, diese Routine nur als Auslöser und den ursprünglichen Status für Threads als Aus, und wählen Sie dann "Vollständige Prüfung nach Routinen/Linien". Wenn ich dies jedoch tue, verlangsamt sich die Programmausführung bereits stark bevor die Triggerroutine jemals getroffen wurde.
Zum Beispiel, wenn der "Vorbereitungsfluss" ungefähr 5 Minuten ohne AQTime dauert, dann wenn ich ihn mit deaktivierter Profilierung laufen lasse, läuft er schon seit 30 Minuten und läuft immer noch, obwohl ich weiß, dass der Auslöser noch gar nicht ist erreicht.
Ich weiß, ich kann versuchen, dies zu umgehen, indem die Menge der Routinen/Linien profiliert reduziert, aber es ist nicht wirklich eine gute Lösung für mich, da ich alle Profile profilieren möchte, sobald ich den eigentlichen Auslöser Routine. Ein weiterer, oft besserer Workaround ist es, die Anwendung ohne AQTime zu starten und dann Attach to Process zu verwenden, nachdem der "Vorbereitungsfluss" beendet ist, aber das funktioniert nur, wenn die Ausführung in der GUI an der richtigen Stelle pausiert oder anderweitig zur Verfügung stellt ein geeigneter Zeitrahmen für das Anbringen. In allen Fällen ist dies nicht der Fall.
Irgendwelche Kommentare darüber, warum dies so ist, und gibt es noch etwas anderes zu tun, als nur den Code aus den Bereichen zu reduzieren oder später an den Prozess anzuhängen?
Wenn Sie den Namen der Routine nicht wissen, ist es nicht sehr spezifisch, oder? –
Haben Sie den Support von AutomatedQA um Hilfe gebeten? – Lucero
Ich kenne die Routine, die den profilierten Prozess startet (ich füge das als Auslöser hinzu), aber die Routine selbst kann große Aufrufketten zu allen Bereichen der Anwendung machen (mehr oder weniger), also weiß ich nicht, welchen Code ich hinzufügen soll Bereiche. - Nein, ich habe AutomatedQA noch nicht gefragt, aber ich denke, ich kann mit den Workarounds beginnen, habe mich aber gefragt, ob jemand mehr Informationen hat. –