Für regelmäßige Leser: Die saga ™ fährt fort ...
Meine App läuft gut auf meiner Entwicklungsmaschine, die vor fünf Jahren als ziemlich gutes Gaming-Rig gekauft wurde. Als solches ist es 64bit, hat eine Taktfrequenz von 2,2 GHz und hat 2 GB Speicher.
Die Maschinen bei der Arbeit sind jedoch Standard-Dell-Problem Bürocomputer und wirklich Schwierigkeiten, sogar meine App zu starten, geschweige denn zu starten.
( Erklärung ... Ich kann mir vorstellen, dass Leute mich anschreien: "Was um alles in der Welt machst du, um eine solche Spezifikation zu verlangen?" Nun, ich mache eine Menge Echtzeit-Bildanalyse und Audioerzeugung Also dort. )
Unser Team hat das Budget, um einen dedizierten Laptop zu kaufen (muss tragbar sein), um ihn laufen zu lassen. Jetzt wurde ich damit beauftragt, eine Mindestanforderung zu erstellen.
Mit welchen Tools kann ich die niedrigste Spezifikation ermitteln, mit der meine App bequem ausgeführt werden kann?
Update: Die bisherigen Antworten konzentrieren sich, obwohl sie nützlich sind, eher auf Alternativen zum Profiling. Also habe ich ein Kopfgeld ausgegeben, um zu sehen, ob es irgendeine Software gibt, die so etwas macht.
Haben Sie Zugang zu einem guten Profiler? Ich denke, es würde sich lohnen, die Leistungsengpässe in Ihrer Anwendung zu verstehen. Wenn es sich herausstellt, dass Ihre Anwendung CPU-gebunden ist, dann sollten Sie sich natürlich überlegen, ein High-End-Prozessor zu verwenden. Ist die Anwendung multi-threaded? Wenn ja, nutzt Ihre Anwendung mehrere Prozessoren oder wird sie wegen der Synchronisierung serialisiert?
Wenn die Anwendung IO-gebunden ist, sollten Sie stattdessen ein SSD-Laufwerk in Erwägung ziehen.
Vielleicht verbringt die App zu viel Zeit mit Paging? usw. ...
Wenn Sie Zugriff auf Visual Studio 2010 Ultimate haben, sollten Sie den Concurrency Profiler ausprobieren . Es wird Ihnen helfen, zu visualisieren, was in Ihrem Programm passiert und die Leistungsengpässe zu identifizieren. Es zeigt Ihnen, wo Ihre App Zeit verbringt: Warten auf E / A, Speicherverwaltung usw. Dieses Tool wird Ihnen zwar nicht die Mindestanforderungen an Hardware nennen, es sollte Ihnen jedoch eine gute Vorstellung davon geben, welche Hardware-Verbesserungen erforderlich sind hilft Ihrer App, besser zu arbeiten. Wenn Sie VS2010 nicht haben, könnten Sie wahrscheinlich eine ähnliche Analyse mit jedem guten Profiler durchführen. Das Besondere am Concurrency Visualizer ist, dass er sich auf die Darstellung von Performance-Problemen im Zusammenhang mit Concurrent und Multi-Threads konzentriert.
Nichts geht über Tests in der realen Welt ...
Versuchen Sie, Ihre App auf einer Vielzahl von Hardware zu betreiben und ein empfohlenes Minimum basierend auf IHRER WAHRNEHMUNG der akzeptablen Leistung zu entwickeln.
Hinweis: Es besteht oft ein großer Unterschied zwischen den absoluten minimalen Hardware-Anforderungen und den empfohlenen minimalen akzeptablen Anforderungen (die sich so anhören, als ob Sie wirklich danach suchen).
Eine Option besteht darin, eine Reihe von virtuellen Maschinen mit unterschiedlichen Systemkonfigurationen zu erstellen und Ihre App in jedem zu testen (Sie möchten dies auf einem Hochleistungsrechner tun). Auf diese Weise können Sie die Größe des Speichers der VM, den CPU-Typ usw. anpassen und das Testen der Software auf einer Vielzahl von Systemen simulieren. Während des Tests können Sie den Windows Task-Manager verwenden, um zu sehen, wie viel von der Host-CPU und dem Speicher Ihrer App verwendet wird. Für ein komfortables Erlebnis sollten Sie Ihre App so gut wie möglich in den physischen Speicher integrieren (plus etwa 1-1,5 GB für das Betriebssystem und andere Hintergrunddienste).
Bedenken Sie auch, ob Ihre App über Funktionen verfügt, die Hardware-Unterstützung erfordern (DirectX 11, CUDA usw.), und stellen Sie sicher, dass Sie diese in Ihre Hardware-Anforderungen aufnehmen.
Aus der kurzen Info klingt es nicht so, als wäre Ihr PC eine besonders hohe Spezialität. Welche Spezifikationen haben die Dell-Maschinen, die Sie gesehen haben, langsam?
Ich würde einen anderen PC versuchen, für den Fall, dass die "Arbeits" -Maschinen nur schlechte Software-Builds sind (Raten) Standard-XP-Festplattencontroller-Treiber usw.).
Ich würde generell nicht empfehlen, die VM-Route als wirklich herunter zu gehen, das ist nur ein Vorteil für die Beschränkung der RAM-Nutzung. Wenn Sie jedoch alternative OS / Service Packs überprüfen müssen, dann sind VMs ein guter Weg zu gehen.
Schließlich sagen Sie, dass die App langsam geladen wird, was macht sie unter Last? Es kann eine gute Idee sein, sich die Performance-Monitore anzusehen, um festzustellen, ob es sich um Festplatten-, RAM- oder CPU-Beschränkungen handelt. Verwenden Sie Google, um nützliche Indikatoren für die Überwachung zu finden.
Verzeihen Sie mir, dass ich das b ***** g offen gesagt habe, aber:
Verwenden Sie Ihre Software, um die Hardwareanforderungen für Ihre Software zu überprüfen.
Ich verstehe nicht ganz, warum die Spezifikation Ihrer Entwicklungsmaschine nicht einfach die erforderliche Spezifikation für den Laptop ist, den Sie kaufen möchten. Wenn dies aus irgendeinem Grund nicht gut genug ist, führen Sie Ihre Software auf einer Hardware mit anderen Spezifikationen aus. Sie könnten zum Beispiel 1 GB RAM aus Ihrem Entwicklungscomputer nehmen, um zu sehen, wie die Dinge mit weniger verfügbarem Speicher laufen.
Es gibt eine große Menge an Benchmark-Software für alle Arten von Aufgaben. Zum Beispiel wird LINPACK häufig zum Benchmarking von Supercomputern verwendet. Der Fehler in all diesen Standard-Benchmarks und in der Vorgehensweise im Allgemeinen besteht darin, dass sie nur gute Informationen darüber liefern, wie ein Computer den Benchmark ausführt. Benchmark-Ergebnisse in Vorhersagen der Leistung von Hardware mit Ihrer Software zu verwandeln, ist eher eine Kunst als eine Wissenschaft. Im Supercomputer messen die Weltorganisationen ihre eigenen Schlüsselanwendungen auf neuen Plattformen vor dem Kauf.
Tags und Links profiling windows hardware performance requirements