2009-07-03 15 views
4

Gibt es eine Möglichkeit, die Mindestanforderungen einer Software zu bewerten? Ich meine, wie kann ich beispielsweise herausfinden, wie viel RAM meine Anwendung mindestens benötigt?Software-Mindestanforderungen auswerten

Danke!

+0

http://stackoverflow.com/questions/893329/determining-recommended-system-requirements Dupe? – Brandon

+0

yup ... habe es vorher nicht gefunden ... danke! – Fernando

Antwort

3

Ein Profiler wird Ihnen hier nicht helfen. Auch die Größe von Datenstrukturen wird nicht geschätzt.

Ein Profiler kann Ihnen sicherlich sagen, wo Ihr Code die meiste CPU-Zeit verbraucht, aber er wird Ihnen nicht sagen, ob Sie Leistungsziele fehlen - z. Wenn Ihre Benutzer zufrieden sind oder mit der Leistung Ihrer Anwendung auf einem bestimmten System nicht zufrieden sind.

Wenn Sie einfach die Größe von Datenstrukturen berechnen und wie viele zu einem bestimmten Zeitpunkt zugewiesen werden, erhalten Sie kein genaues Bild über die Speichernutzung im Zeitverlauf. Der Grund dafür ist, dass die Speicherauslastung von vielen anderen Faktoren bestimmt wird, z. B. von der Anzahl der E/A-Vorgänge in Ihrer Anwendung, von den von Ihrer Anwendung verwendeten Betriebssystemdiensten und vor allem von der temporären Art der Speicheranwendung in Ihrer Anwendung.

Der effektivste Weg, Mindestanforderungen zu verstehen, ist zu

  • Stellen Sie sicher, dass eine effektive Art und Weise haben die Leistung von Mess Metriken, die Ihrem Benutzer wichtig sind. Die beste Metrik ist die Antwortzeit. Abhängig von Ihrer App kann eine Rate wie Durchsatz oder Operationen pro Sekunde gelten. Ihre Messungen könnten empirisch sein (z. B. versuchen Sie es einfach), aber das ist am wenigsten effektiv. Dies wird am besten mit einer Art Instrumentierung gemacht. Unter Windows ist die Wahl [ETW] [1]. Andere Betriebssysteme haben andere geeignete Mechanismen.
  • Haben Sie eine Art von automatisierten Methode zur Ausübung Ihrer Anwendung. Dadurch können Sie wiederholte und zuverlässige Messungen durchführen.
  • Messen Sie Ihre Anwendung mit verschiedenen Speichergrößen und sehen Sie, wo die Leistung zu leiden beginnt. Dadurch können auch Leistungsfehler auftreten, die eine gute Leistung Ihrer Anwendung verhindern. Wenn Sie Zugang zu Plattformen verschiedener Leistungsstufen haben, verwenden Sie diese ebenfalls. Sie haben nicht angegeben, was Ihre App macht, aber das Testen auf einem Netbook mit 1 GB Arbeitsspeicher ist für viele (nicht alle) Client-Anwendungen ideal.

Sie können das gleiche mit der CPU und anderen Komponenten wie Festplatte, Netzwerk oder der GPU tun.

Beachten Sie auch, dass es hier keine einfache Antwort gibt - eine effektive Arbeit bei der Einstellung von Mindestanforderungen ist echte Arbeit. Dies gilt insbesondere dann, wenn Ihre Anwendung partizipatorisch für den einen oder anderen Plattformaspekt ist.

Es gibt noch andere Faktoren - zum Beispiel kann Ihre App in einer Konfiguration in Ordnung sein, bis der Benutzer eine andere Anwendung öffnet, die speicherhungrig sein kann oder ein CPU-Schwein. Benutzer haben selten nur eine Anwendung geöffnet.

Das bedeutet, dass Sie nicht nur Mindestanforderungen festlegen müssen, sondern auch die Erwartungen der Benutzer erfüllen müssen - das heißt, wann Ihre Anwendung gut abschneidet und wann nicht und welche Faktoren die Leistung beeinträchtigen.

[1]: http://msdn.microsoft.com/en-us/library/ms751538.aspxstarker Text

0

Sie können versuchen, einen Leistungsprofiler für Ihre Software zu verwenden, während Sie diese testen.

1

Beurteilen Sie anhand der von der Anwendung verwendeten Datenstrukturen, wie viel Speicherplatz sie bei normaler Verwendung einnehmen. Verwenden Sie diese Schätzung, um eine Anzahl von Maschinen (virtuell oder physisch) einzurichten, um die Schätzung in verschiedenen Szenarien zu testen (d. H. Verschiedene Zielbetriebssysteme, verschiedene Einstellungen für den virtuellen Speicher usw.).

Dann messen Sie die Leistung der Anwendung in den verschiedenen Szenarien. Ihre minimalen Einstellungen werden die Maschine sein, die die geringste Leistung erbringt und trotzdem akzeptabel ist.

3

Im Idealfall würden Sie die Mindestanforderungen für eine Software basierend auf Ihrer Zielgruppe festlegen und dann Ihre Software während der Entwicklung auf diese Konfiguration testen, um sicherzustellen, dass sie eine befriedigende Erfahrung liefert.

Sie können sich ein System ansehen, auf dem Ihre Software ausgeführt wird, und sehen, wie viel Speicher von Ihrer Anwendung belegt wird, und Sie können damit angeben, wie viel Speicher belegt wird. Die CPU ist ein wenig komplexer - Sie könnten versuchen, Ihre CPU-Anforderungen zu modellieren, aber dies genau zu tun, kann eine Herausforderung sein.

Aber letztlich müssen Sie Ihre App auf dem Basissystem, das Sie anvisieren, testen.

+0

+1 für die Berücksichtigung der Zielgruppe, anstatt nur zu testen, was die App benötigt, wenn es fertig ist. – OregonGhost

0

Sie könnten Virtualisierung verwenden, um wiederholt eine repräsentative Testsuite mit unterschiedlichem RAM-Speicher in der virtuellen Maschine auszuführen ... Wenn die Leistung durch Swapping unter akzeptable Werte fällt, haben Sie die Speicheranforderung gefunden.