2009-08-01 7 views
8

Qualcuno sa di qualsiasi controllo di stile o strumenti di compilazione che contrassegna il boxing e l'unboxing dal server di build?strumento di compilazione per rilevare l'autoboxing?

Ho già l'opzione Eclipse per contrassegnarlo sulla mia estremità, ma non tutti nel progetto utilizzano lo stesso IDE o le stesse impostazioni. Trovarlo sul lato della costruzione sembra l'unico modo per scoprire dove potrebbe insinuarsi nel progetto.

+0

Questo dovrebbe essere una sorta di strumento per eseguire analisi statiche sul codice sorgente Java? –

risposta

0

Uno strumento migliore sarebbe uno che evidenzia il box automatico sui percorsi di codice che un profiler dimostra è lento a causa del boxing. Forzare la boxe esplicita è come evitare la garbage collection perché potrebbe essere lenta in un caso limite. Lascia che gli strumenti facciano il loro lavoro - compilatore e linguaggio nell'espressione del problema reale su cui stai lavorando, e profiler nell'ottenere problemi di prestazioni. Il pugilato esplicito è innaturale nel contesto della risoluzione di un problema perché mostra sfumature linguistiche che non fanno parte della descrizione della soluzione.

Modifica: questo tipo di commento è appropriato qui? In realtà sto cercando di essere utile - in effetti ho pensato in passato in particolare a uno strumento per identificare le istanze dell'opcode CLI box su percorsi a caldo.

+0

@ 28OZ28: re commento - Penso che sia appropriato. –

3

Findbug identificherà molti specific cases di problemi di boxing potenzialmente problematici. Mi sono collegato direttamente a un esempio, ma se Ctrl-F per "box" in quella pagina, troverai il resto abbastanza facilmente. Penso che cercare specifici problemi di boxe sia meglio di una segnalazione all'ingrosso di tutto. (in altre parole, sono d'accordo con 280Z28)

2

Se si utilizza Eclipse, visualizzare Preferenze e passare a Java - Compilatore - Errori/Avvisi. Nella sezione Problemi di programmazione potenziali una delle opzioni, puoi attivare il boxing automatico/unboxing come avvertimento o errore. Questa analisi statica potrebbe essere molto utile se utilizzata con un profiler.

Come 280z28 menzionato, sarebbe meglio avere uno strumento che trova casi di auto-boxing/unboxing che sono chiamati molto frequentemente e quindi influiscono sulle prestazioni. Tuttavia non conosco uno strumento del genere.

+1

Il poster originale ha detto che stava cercando qualcosa che non richiederebbe a tutti i membri del suo team di usare Eclipse. Sono nella stessa barca, dove ho un team di sviluppatori che vorrebbe vietare l'uso dell'autoboxing attraverso il team senza imporre un IDE particolare al team. Purtroppo, devo ancora trovare uno strumento che faccia questo al di fuori di un IDE particolare. –

Problemi correlati