2016-06-30 11 views
6

Abbiamo un set di applicazioni Java che stiamo sviluppando da anni che vengono avviate in remoto tramite Web Start. Dopo l'aggiornamento a Java SE 8 Update 91 c'è una pausa molto significativa (20-60 secondi a seconda dell'applicazione) nel processo di avvio senza alcuna indicazione all'utente tipico che qualcosa stia accadendo. Questa pausa si verifica dopo la chiusura della finestra di dialogo "Avvio applicazione" di Java e prima dell'avvio dell'applicazione.Java 8 Aggiornamento 91 L'applicazione Web Start ha un ritardo di avvio prolungato

La lunghezza della pausa sembra essere correlata alla dimensione dell'applicazione. Reverting to Java 8 Update 77 elimina completamente la pausa e le stesse applicazioni iniziano senza alcuna pausa.

Le nostre applicazioni richiedono "tutti i permessi" poiché è necessario leggere/scrivere dati sull'unità del client per scopi di memorizzazione nella cache. Quindi tutti i nostri vasi sono firmati e hanno le necessarie modifiche manifeste.

Se le impostazioni Java hanno la console Java abilitata, la console viene visualizzata immediatamente dopo la finestra di dialogo "Avvio applicazione" di Java visualizzata quando si accede al file JNLP dell'applicazione. Tuttavia, nessuna attività viene visualizzata nella console durante questa pausa (ad esempio, nessuno dei tipici messaggi di caricamento della classe Java viene visualizzato fino a dopo la pausa e nessuno del nostro codice nel metodo "main" viene eseguito fino a dopo la pausa).

Alcune di queste applicazioni sono abbastanza grandi. Il codice che abbiamo scritto è di circa 10-12 MB e un totale di risorse aggiuntive tra 15-20 MB a seconda dell'applicazione.

Ho trovato un rapporto bug JDK che sembra molto simile ... bug report Questo rapporto afferma che l'utilizzo di una versione precedente di Java determina l'avvio immediato se la cache Java viene rimossa prima del primo avvio. Il problema che sto segnalando non sembra essere influenzato dalla cache Java. Ripristino di Java 8 L'aggiornamento 77 ha come risultato l'avvio immediato senza eliminare la cache Java.

Le note di rilascio Java per Java 8 Aggiornamento 91 menzionano una correzione di bug "Regressione in tempo di avvio dell'applet corretta". Ma non vedo nulla che indichi un cambiamento intenzionale che comporterebbe una lunga pausa durante l'avvio (come una maggiore sicurezza di scansione, ecc.).

Con questa durata di pausa all'avvio e nessuna possibilità di indicare all'utente che qualcosa sta accadendo, stiamo ricevendo lamentele sulle applicazioni.

Qualsiasi aiuto sarebbe molto apprezzato.

UPDATE 1 lug 2016 ...

ho trovato questo SO domanda che sembra descrivere i sintomi identici: similar issue. Tuttavia, era correlato a Java 7 Update 40. E la risoluzione era di disabilitare il controllo di revoca nel file deployment.properties.

Ho usato la console Java per impostare "Non controllare" sia per "Esegui i controlli di revoca dei certificati di firma firmati" sia "Esegui i controlli di revoca dei certificati TLS". E ho verificato che le modifiche si riflettano nel file deployment.properties. Tuttavia, queste impostazioni non risolvono o migliorano il problema.

Se ciò avesse funzionato, sarebbe un ottimo indicatore del problema, ma non sarebbe una "soluzione" utile per i client che disattivano questi controlli di revoca nelle impostazioni avanzate. In particolare, non sarebbe utile per il pubblico in generale che ha accesso a un numero di nostre applicazioni.

UPDATE 7 luglio 2016 ...

Sulla base del commento di jaivalis Ho scaricato il rilascio accesso anticipato di Java 8 Update 112 JRE. Quando eseguo le nostre applicazioni con questo JRE non c'è alcuna pausa. Le applicazioni vengono eseguite immediatamente dopo la chiusura della finestra di dialogo "Avvio dell'applicazione".

Finora non riesco a trovare alcuna nota che spieghi perché questo sarebbe. Spero che questa "correzione" non sia il risultato di nuove misure di sicurezza che non sono state completamente applicate a questa versione iniziale di accesso. Spero che qualcosa sia stato effettivamente affrontato e che la prestazione di lancio immediata rimarrà quando questa versione sarà ufficiale.

A proposito, non riesco a trovare una data di rilascio ufficiale per Java 8 Update 112. Speravo che sarebbe successo a luglio, ma vedo alcune indicazioni di ottobre. Qualcuno ha qualche informazione su quando questo aggiornamento sarà generalmente disponibile?

Ecco la pagina di accesso precoce per Java 8 Update 112 early access
Ecco le informazioni data di uscita ho trovato Java 8 Update 112 release timeline

Questo page menziona anche una Java 8 Aggiornamento 102, ma non riesco a trovare un rilascio di accesso presto per questo aggiornamento . Qualsiasi link che trovo rimanda all'aggiornamento 112.

+1

Provare a usare qualcosa come strace a dtruss per vedere cosa sta facendo il processo per quei 20 - 60 secondi. – mekazu

+1

VisualVM potrebbe essere estremamente utile, a seconda della natura del problema. Puoi ottenere una discarica o un profilo? –

+0

-mekazu Sto eseguendo Windows, quindi sto cercando una versione di strace o simile per provarlo. - Steven Ho appena ottenuto un dump dello stack di thread (opzione v in console Java). Dovrei aggiungerlo alla mia domanda? O come posso pubblicare qualcosa del genere qui perché è piuttosto lungo (sono nuovo di zecca in questo forum)? – Rob

risposta

1

Questo problema è stato risolto con la versione di aggiornamento 101 di Java 8 (tecnicamente build 1.8.0_101-b13).

0

Ciao ho trovato qualcosa che potrebbe aiutare voi :)

Negli ultimi patch note da Oracle Essa ha dichiarato che questo era un problema bug nella ultima patch di Java

Personalmente avrei trovato un terzo partito per scaricare una versione precedente di Java

Ecco un link alle note di patch http://www.oracle.com/technetwork/java/javase/8u20-relnotes-2257729.html

speranza che si trovi il problema!

+0

-Mitchell ringrazia per l'input, ma quelle note di rilascio fanno riferimento a Java 8 Update 20 e dopo averle consultate non vedo alcun riferimento ai ritardi nelle applicazioni Java Web Start – Rob

Problemi correlati