2010-07-12 7 views
8

Für regelmäßige Leser: Die Saga ™ geht weiter ...Mit welchen Tools kann ich die Hardwareanforderungen meiner Anwendung ermitteln?

Meine App läuft auf meiner Entwicklung Maschine in Ordnung - die (Vor 5 Jahren) erworben wurde, als ein ziemlich gutes Gaming-rig. 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 Mühe, sogar meine App zu starten, geschweige denn es 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 es laufen zu lassen. Jetzt wurde ich damit beauftragt, eine minimal erforderliche Spezifikation zu erstellen.

Mit welchen Tools kann ich die niedrigste Spezifikation ermitteln, mit der meine App bequem ausgeführt werden kann?

Update: Die Antworten soweit, obwohl nützlich, konzentrieren sich mehr auf Alternativen zu Profiling. Also habe ich ein Kopfgeld ausgegeben, um zu sehen, ob es irgendeine Software gibt, die so etwas macht.

+0

Sie könnten immer versuchen, Ihren Code ein wenig zu optimieren, damit er auf einer niedrigeren Spezifikation läuft. Andernfalls müssen Sie Ihre App nur auf verschiedenen Kandidaten-Computern testen, um ein Gefühl dafür zu bekommen, was Sie für eine akzeptable Leistung benötigen. –

+0

Danke Paul. Ich habe Optimierungen vorgenommen, soweit es meine begrenzten Entwicklungsfähigkeiten zulassen. (Wenn Sie neugierig sind, zögern Sie nicht, die Quelle zu überprüfen. Ich wäre sehr dankbar für jede Hilfe!) Die letztere Option ist meine Sicherung, aber da wir eine dedizierte Maschine kaufen, wäre es schön, es zu bekommen auf Anhieb richtig. –

+1

Keine Überraschung da ... Standard-Dell-Büro-PCs laufen Celerons mit langsamer Ram. Wenn es in den obigen Spezifikationen gut läuft, können Sie das nicht als Basis verwenden? Offensichtlich hat ein Laptop Hitzeprobleme, wenn Sie über längere Zeit mit hohen Berechnungen arbeiten, aber Hardware ist heutzutage ziemlich billig. Erhalten Sie kein Energiesparmodell. ;) – cbednarski

Antwort

5

Haben Sie Zugriff auf einen 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 Betracht ziehen.

Vielleicht verbringt die App zu viel Zeit Paging? usw.

Wenn Sie Zugriff auf Visual Studio 2010 Ultimate haben, empfehle ich die Concurrency Profiler. Es wird Ihnen helfen, zu visualisieren, was in Ihrem Programm passiert und die Leistungsengpässe zu identifizieren. Es wird Ihnen zeigen, wo Ihre App Zeit verbringt: Warten auf IO, Speicherverwaltung, etc. Während dieses Tool wird Ihnen nicht sagen, was die Mindestanforderungen an die Hardware sind, sollte es Ihnen eine gute Vorstellung davon geben, welche Hardware-Verbesserungen helfen werden Ihre App funktioniert besser. Wenn Sie VS2010 nicht haben, könnten Sie wahrscheinlich eine ähnliche Analyse mit jedem guten Profiler durchführen. Das Tolle am Concurrency Visualizer ist, dass es sich darauf konzentriert, gleichzeitige und Multi-Thread-Performanceprobleme aufzudecken.

+0

Ich habe derzeit nur Professional, aber wenn ich upgraden kann, werde ich ernsthaft darüber nachdenken. Die Performance-Profiling-Tools sehen sehr nützlich aus. Ich nehme an, Sie können keine anderen Profiler empfehlen? .. –

+0

Hallo Tom, Ich wünsche, das Upgrade nicht so teuer war :(Es ist wirklich eine Schande, Eine große kostenlose Option ist „xperf“ Es kommt mit den Windows-Performance-Analyse-Tool (hier: http: // msdn Englisch: www.mjfriendship.de/en/index.php?op...39&Itemid=32 xperf ist unglaublich leistungsfähig, hat aber eine steile Lernkurve und hält deine Hand nicht so gut wie die VS Profiler Es sieht auch so aus, als gäbe es ein Open-Source-Profiler namens "Sleepy", hier verfügbar http://www.codersnotes.com/sleepy/, aber ich habe es nie benutzt. – Matt

1

Nichts geht über Praxistests ...

Versuchen Sie, Ihre Anwendung auf einer Vielzahl von Hardware ausgeführt und mit einem empfohlenen Minimum auf Ihrer Wahrnehmung der akzeptablen Leistung basierend kommen.

Hinweis: Es besteht oft ein großer Unterschied zwischen den absoluten Mindestanforderungen an die Hardware und den empfohlenen Mindestanforderungen (die sich so anhören, als ob Sie wirklich danach suchen).

0

Eine Option besteht darin, eine Reihe von virtuellen Maschinen mit unterschiedlichen Systemkonfigurationen zu erstellen und Ihre App in jedem Gerät auszuprobieren (Sie möchten dies auf einem Hochleistungsgerät tun). Auf diese Weise können Sie die Speicherkapazität der VM, den CPU-Typ usw. anpassen und das Testen der Software auf verschiedenen 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 Arbeitsspeicher Ihrer App verwendet wird. Für eine angenehme Erfahrung 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).

Denken Sie auch daran, ob Ihre App über Funktionen verfügt, die Hardwaresupport erfordern (DirectX 11, CUDA usw.), und stellen Sie sicher, dass Sie diese in Ihre Hardwareanforderungen einbeziehen.

0

Von der kurzen Info klingt es nicht wie Ihr PC ist eine besonders hohe Spezifikation. Welche Spezifikationen haben die Dell-Maschinen, die Sie gesehen haben, langsam?

Ich würde versuchen, einen anderen PC für den Fall, dass die 'Arbeitsmaschinen sind nur schlechte Software-Builds (Raten Standard-XP-Festplatten-Controller-Treiber usw.).

Ich würde nicht generell empfehlen, die VM-Route als wirklich herunter zu gehen, das ist nur gut für die Einschrä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, die App ist langsam zu laden, was macht es 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.

+0

In Bezug auf die Spezifikation, mein dev PC ist nicht so hohe Spezifikation nach modernen Standards: Dual-Core-AMD64 bei 2,21 GHz mit 2 GB (was ich vermute) DDR2-Speicher. Arbeitscomputer scheinen gleich die Hälfte dieser zu sein: d. H. Einzelner 32-Bit-Kern, der bei etwa 1 GHz läuft und gewöhnlich mit 1 GB RAM. –

+0

1Ghz CPU in einem Desktop-Rechner wird sehr alt sein, würde ich wahrscheinlich einen Pentium 3 schätzen, der wahrscheinlich nicht einmal die meisten modernen Flash-Webseiten anzeigen wird. Die einzige Sache, die ich prüfen würde, ist mit dem Leistungsmonitor, ob die RAM-Auslastung hoch ist und damit beginnt, auf den 1 GB RAM-Maschinen zu tauschen. Wirklich 1 GB RAM ist ein geeignetes Minimum für eine nicht-professionelle Anwendung, so dass Sie versuchen sollten, in das zu passen. Auf der CPU gehen Sie einfach für Ihre CPU (und Intel-Entsprechungen) als Minimum, schauen Sie sich Toms Hardware an, um die Entsprechungen in Intel, Mobile usw. zu erarbeiten. –

+0

Oder ein Netbook-PC. – Arafangion

0

Vergib mir die b ***** g offensichtlich für die besagt aber:

IHRE Software Verwenden Sie 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 Organisationen ihre eigenen Schlüsselanwendungen auf neuen Plattformen vor dem Kauf.

Verwandte Themen