2009-08-21 2 views
2

Hallo mein Freund ist derzeit eine Anwendung mit SOA-Architektur zu entwickeln, schickte er mir ein Bild mit vielen Schichten (10 fast) und er ist besorgt über Leistungsprobleme, die Anwendung ist Entwicklung auf VB.Net 2.0 & 3.5 (einige libs). Er versteht kein Englisch, ich versuche mein Bestes zu geben, um ihm zu helfen, aber ich denke, es ist Zeit, ein Werkzeug für die Leistung zu bekommen.Wie führt man eine interne Testleistung für .net-Anwendungen durch?

Dank

Antwort

1

sollten Sie einen Profiler verwenden. Hier ist der Link zum Blog des Visual Studio Profiler Teams: http://blogs.msdn.com/profiler/

Da ist eine Menge cooler Sachen.

1

Ich habe meine Komponententests dafür verwendet, indem ich die gleichen Testdaten im Grunde genommen durch jede Schicht liefere, so dass du mit der untersten Schicht beginnst (Datenbankzugriffsobjekt vielleicht). Holen Sie sich etwas Zeit dafür. Testen Sie dann die nächste Ebene, und machen Sie weiter, und Sie können sehen, was die Leistung von jeder Ebene ist.

Sie können die Tests 10 oder 100 Mal ausführen und erhalten die Zeit vor den Tests, dann die Zeit danach, und drucken Sie die Differenz aus, so dass Sie einige der zufälligen Unterschiede herausnehmen können.

Ich habe genug Testdaten für 100 Tests, um eindeutig zu sein, so dass ich jede Möglichkeit der Datenbank Caching-Abfragen entfernen und diese verwenden kann.

1

Es klingt wie eine gute Passform für eine Mischung aus Profiling (ANTS Performance Profiler ist ein solides Produkt, aber es gibt andere bezahlte und kostenlose Alternativen) und Integration/Performance-Tests.

Zehn Schichten scheint wie eine erschreckende Menge, wir haben eine "quasi" SOA-App (alle Dienste sind intern ausgesetzt, die Nachrichten, die über sie gehen fast vollständig von einer einzigen Client-Anwendung verbraucht), die in der Regel nur aus 4 besteht 5 Schichten:

Database > Web-Service > Web-Service Proxy/Persistence Layer > Data Layer > UI

Da es um die Kundenerfahrung in unserer Welt ist können wir ANTS auf dem Client verwenden, um eine Debug-Build und sehen sie die kumulative Zeit läuft es nimmt alle Ebenen zu gehen und zurück up-- Nur wenige unserer Engpässe liegen außerhalb des Client-Codes.