Quali sono i vantaggi di un profiler Java commerciale rispetto a quelli gratuiti, ad es. quello in Netbeans?

StackOverflow https://stackoverflow.com/questions/490858

  •  20-08-2019
  •  | 
  •  

Domanda

Occasionalmente devo fare qualche lavoro di profilazione sul codice Java, e vorrei sapere perché dovrei fare investigare il mio capo in un profiler commerciale invece di usare quello in Netbeans o JConsole?

Quali sarebbero le caratteristiche killer che giustificherebbero l'investimento?

È stato utile?

Soluzione

Ho esperienza di utilizzo sia del profiler NetBeans che di JProbe. Per la profilazione delle prestazioni ho trovato Netbeans abbastanza utile, ma dove JProbe è superiore è per la profilazione della memoria.

JProbe ha strumenti superiori per confrontare le istantanee di heap e trovare la causa principale di una perdita di memoria. Ad esempio, in JProbe è possibile visualizzare visivamente heap shapshots come un grafico, selezionare nodi per indagare e quindi eliminare i riferimenti per vedere se l'istanza potrebbe essere successivamente raccolta in modo errato.

Altri suggerimenti

Nella mia esperienza con JProfiler, è solo un'esperienza a tutto tondo più forte del profiler NetBeans. È più facile iniziare, è più facile interpretare le informazioni e, sebbene non le abbia misurate, sembra che JProfiler abbia un impatto meno negativo sulle prestazioni dell'applicazione da profilare.

Inoltre, JProfiler si integra perfettamente con IntelliJ IDEA. Devo usare NetBeans per usare il profiler NetBeans, il che è un inconveniente perché devo configurare manualmente un progetto in formato libero in modo che corrisponda al layout del mio progetto.

Il profiler NetBeans è utilizzabile. A differenza di IntelliJ, non comprerei una licenza JProfiler per i miei progetti personali perché, a differenza di un IDE, non è uno strumento che usi tutto il giorno tutti i giorni. Tuttavia, per il lavoro retribuito non c'è motivo di non acquistare uno strumento migliore. Non è costoso rispetto al costo del tempo di uno sviluppatore.

Se stai già utilizzando Netbeans, avviare il profiler è semplice (a meno che tu non stia utilizzando un progetto basato su Maven ... sigh).

Ho usato profilatori pagati e Netbeans. Netbeans fa abbastanza bene il lavoro (era un po 'difficile quando è uscito per la prima volta ... ma molto meglio ora).

Il profilo del profilo I non è ENORME, quindi non posso dire se il tempo impiegato nella profilazione sia un fattore importante.

La risposta è altamente soggettiva e dipende totalmente dalle tue esigenze. Cose da guardare:

1) facilità d'uso nel tuo ambiente (nel caso di NetBeans è probabile che il profiler integrato sia più semplice.

2) tempo impiegato per avviare il prfiler e ottenere risultati utilizzabili

3) è un profiler di campionamento o tracciamento? (Una panoramica è qui: http://docs.hp.com/en/ 5992-0757 / ch05s01.html

4) puoi visualizzare i risultati in tempo reale o devi attendere il completamento della profilazione?

Ecco un link a una discussione slashdot sui profiler Java: http://ask.slashdot.org/article.pl?sid=06/06/30/0053237

Non ho usato il profiler Netbeans, ma ho provato JProfiler, Yourkit e JProbe. Ho trovato Yourkit leggermente migliore (acquistato principalmente dall'aspetto dell'usabilità). Alcune delle utili funzionalità sono: (puoi verificare se è disponibile in Netbeans)

  • Profilazione J2EE (ad es. mostra il tempo impiegato da una query SQL).
  • Confronto e annotazione dell'istantanea
  • Rilevatore di deadlock
  • Telemetria di eccezione

Puoi controllare per maggiori dettagli sul loro sito .

Direi che, pronto per l'uso e più statistiche sulle prestazioni. Mi è stato assegnato un lavoro di profilazione lo scorso anno mentre stavo internando in una multinazionale. Ho usato il profiler InfraRED che utilizza l'API Java orientata all'aspetto (funziona con Aspectwerkz e AspectJ). Ma ho dovuto estendere il profiler per ottenere ciò che il mio manager voleva. Inoltre, le statistiche sulle prestazioni fornite dal profiler erano limitate.

Ma prima di selezionare il profiler ho cercato alcuni altri profilatori open source. Alcuni erano banali e non andavano bene per quello che volevamo.

Vorrei anche aggiungere che alcuni di loro non funzionano. Ad esempio, se vogliamo raccogliere statistiche sulle prestazioni di un'applicazione Web, tutti i profili non supportano quelle statistiche richieste per noi.

Con un profiler completamente indipendente, è molto più facile integrarlo con altre applicazioni nella tua toolchain. Ad esempio, supponiamo di voler eseguire il profiler come parte del processo di creazione (ad esempio, una volta a notte). Qualcosa come JProfiler si integra facilmente con ANT, mentre i profiler incorporati negli IDE possono o meno. Se hai una macchina di compilazione separata, ha senso installare una copia locale di un profiler, ma l'installazione di un intero IDE solo per ottenere l'accesso a un componente non lo è.

Se stai usando Tomcat potresti prendere in considerazione lambdaprobe

http://www.lambdaprobe.org/

(È gratuito)

Dalla mia esperienza, il tuo profiler YourKit è il più utilizzabile. Le piccole cose di usabilità fanno davvero la differenza, ma è anche la più completa, contenente:

  • snapshot di memoria più completi e utilizzabili (funzionanti anche con 1 GB + heap), con visualizzazione dettagliata degli oggetti e dati primitivi, per ogni singolo oggetto. (ad esempio in hashmap puoi vedere se gli oggetti sono distribuiti uniformemente o la maggior parte sono memorizzati nello stesso bucket!) Questo dettaglio delle istantanee della memoria e la sua facilità d'uso è la mia ragione principale per yourkit.
  • spese generali molto ridotte (molto meno di molti altri profiler che ho usato)
  • confronto di istantanee
  • Profilazione J2EE
  • rilevatore di deadlock, stato di blocco (penso che manchi ancora java.concurrent.locks, il bud per la sincronizzazione è fantastico)

Tra le altre cose, migliora costantemente, quindi chissà cosa ci riserva il futuro :)

Confronta le funzionalità e vedi se hai davvero bisogno delle funzionalità fornite dal software commerciale rispetto a quello gratuito. Se sì, vale la pena investire.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top