Ich muss erklären, warum meine Anwendung an einem entfernten Standort schlecht funktioniert. Es wird für mich unbequem sein, einen Profiler zu installieren. Ich vermute, dass die Maschine schlecht konfiguriert ist, aber ich brauche eine einfache Methode, um zu zeigen, dass eine Standard-App auf ihrem Rechner leidet, wodurch ich meine Anwendung entbinde und den Fokus auf ihre Systemadministratoren verlagerte.
Idealerweise würde ich vorschlagen, dass sie eine einfache Java-App installieren, die die Leistung der Host-Umgebung testet. Wenn es einige Spezifikationen für CPU, Festplatte, Netzwerk usw. zurückgeben könnte, wären sie perfekt.
Ich habe erwartet, so etwas im Internet zu finden, aber ich war bisher bei meiner Suche nicht erfolgreich.
Soweit eine "einfache Java-App", habe ich vorher etwas Ähnliches gemacht. Meine Bemühungen konzentrierten sich auf das Profiling einer Java-VM (virtuelle Maschine - die "JVM"), wobei nicht die Leistung einer bestimmten Java-Anwendung getestet wurde. Der Fokus lag auf dem Testen der Fähigkeiten des Hosting-Betriebssystems - Training:
Zu den Lösungen, die ich mir angeschaut habe, gehören:
SciMark ist ein zusammengesetzter Java-Benchmark, der die Leistung numerischer Codes in wissenschaftlichen und technischen Anwendungen misst. Es besteht aus fünf Rechenkernen: FFT, Gauß-Seidel Relaxation, Sparse-Matrix-Multiplikation, Monte-Carlo-Integration und dicht LU-Faktorisierung.
Diese Kernel werden ausgewählt, um einen Hinweis darauf zu geben, wie gut die zugrundeliegenden JVM / JITs bei Anwendungen, die diese Typen verwenden, funktionieren Algorithmen. Die Problemgrößen werden absichtlich klein gewählt Um die Auswirkungen der Speicherhierarchie zu isolieren und auf interne konzentrieren JVM / JIT- und CPU-Probleme. Eine größere Version des Benchmarks (SciMark 2.0 LARGE) adressiert die Leistung des Speichersubsystems mit Cache-Out-of-Cache Problemgrößen.
Er misst mehrere Rechenkerne und meldet eine zusammengesetzte Punktzahl in ungefährer Mflops (Millionen von Fließkommaoperationen pro 2.).
SciMark ist zwar etwas veraltet (2004), scheint aber immer noch recht effektiv zu sein.
Jeder Testlauf dauert etwa 30 Sekunden.
SPECjvm2008 (Java Virtual Machine Benchmark) ist eine Benchmark-Suite für die Leistung einer Java Runtime Environment (JRE) messen, enthält mehrere reale Anwendungen und Benchmarks mit Schwerpunkt auf Core-Java-Funktionalität. Die Suite konzentriert sich auf die Leistung der JRE, das eine einzelne Anwendung ausführt; es spiegelt die Leistung der Hardware-Prozessor und Speicher-Subsystem, hat aber geringe Abhängigkeit von Datei-E / A und schließt keine Netzwerk-E / A über Maschinen hinweg ein. Der SPECjvm2008 Workload ahmt eine Vielzahl allgemeiner allgemeiner Anwendungen nach Berechnungen. Diese Merkmale spiegeln die Absicht wider, dass dies der Fall ist Benchmark wird für die Messung der grundlegenden Java - Performance auf einem große Vielfalt von Client- und Serversystemen.
SPEC findet auch die Benutzerfreundlichkeit von Java wichtig und die Suite umfasst daher Startup-Benchmarks und verfügt über eine erforderliche Run-Kategorie aufgerufene Basis, die ohne Abstimmung der JVM ausgeführt werden muss verbessern Sie die Out-of-the-Box-Leistung.
SPECjvm2008 Benchmark-Highlights
- Nutze reale Anwendungen (wie Derby, Sunflow und Java) und gebietsbezogene Benchmarks (wie XML, Serialisierung, Krypto und Scimark).
- Misst auch die Leistung des Betriebssystems und Hardware im Kontext der Ausführung der JRE.
Im Gegensatz zu SciMark dauert SPECjvm2008 viel länger, um die Suite vollständig auszuführen - dauert etwas mehr als 2 Stunden .
Um das Netzwerk zu testen, verwende ich etwas wie iperf , das sowohl für Linux / Windows / etc.
verfügbar istZum Testen der Festplattenleistung gibt es eine ganze Wissenschaft dahinter, und ohne zu wissen, welches Betriebssystem Sie verwenden, kann ich Ihnen keine spezifische Antwort geben. Wenn Sie jedoch beispielsweise Linux verwenden, würde ich dies überprüfen.
Tags und Links java benchmarking performance jvm utilities