2011-01-03 15 views
10

Per l'università, eseguo modifiche al codice e analizzo la loro influenza sulle prestazioni dei programmi Java. Pertanto, ho bisogno di programmi Java --- nel migliore dei casi usati nella produzione --- e benchmark appropriati. Ad esempio, ho già ottenuto HyperSQL e misurato le sue prestazioni con il programma di riferimento PolePosition. I programmi Java in esecuzione su una JVM senza compilatore JIT. Grazie per l'aiuto!Benchmark dei programmi Java

P.S .: Non è possibile utilizzare programmi per confrontare le prestazioni della JVM o del linguaggio Java stesso (come ad esempio Wide Finder).

+0

Non è chiaro cosa vuoi fare. Puoi spiegarlo un po 'oltre? Il codice byte – Riduidel

+1

di solito non è ottimizzato, invece il JIT ottimizzerà il codice nativo che crea. Come tale, potresti scoprire che la modifica del codice byte non migliorerà le prestazioni come ti aspetteresti dato che sei dipendente da come viene convertito in codice nativo. –

+0

@ Peter, penso che stia cercando scenari che offrano le migliori prestazioni – UVM

risposta

0

Qualsiasi programmatore esperto ti dirà che l'ottimizzazione prematura è peggio di nessuna ottimizzazione. È uno spreco di risorse nella migliore delle ipotesi e una fonte di infiniti problemi futuri (e attuali) nel peggiore dei casi.

Senza contesto, qualsiasi applicazione, anche con log di benchmark, non ti dirà nulla. Potrei avere un ciclo in là che richiede 10 ore per essere completato, il benchmark mostrerà che ci vorrà quasi per sempre, ma non mi interessa perché non è critico per le prestazioni. Un altro ciclo richiede solo un millisecondo, ma potrebbe essere troppo lungo perché mi impedisce di intercettare i pacchetti di dati in arrivo che arrivano a intervalli di 100 microsecondi.

Due estremi, ma entrambi possono accadere (anche nella stessa applicazione) e non si potrebbe mai sapere se non si conosce quell'applicazione, come viene utilizzata, cosa fa, in quali condizioni e requisiti.

Se un'interfaccia utente impiega 1/2 secondo per il rendering potrebbe essere troppo lunga o nessun problema, qual è il contesto? Quali sono le aspettative dell'utente?

8

Caliper è uno strumento fornito da Google per micro-benchmarking. Ti fornirà grafici e tutto. Le persone che hanno messo insieme questo strumento conoscono molto bene il principio di "Ottimizzazione prematura è la radice di tutti i mali" (al punto di stima di una persona) e sono molto attenti nello spiegare il ruolo del benchmarking.