durante fasi di test sul prodotto Aspose.Words Java per la funzione di conversione DOCX → PDF noto tempi molto più alti tra la prima conversione effettuata e le successive.
Ho provato ad inserire anche una fase di inizializzazione che esegue le seguenti istruzioni
Document docTmp = new Document();
docTmp.updatePageLayout();
ma le performance della prima conversione eseguita sono comunque molto più alte rispetto alle successive conversioni.
Grazie per averci contattato riguardo al nostro prodotto Aspose.Words Java. Capiamo che i tempi di conversione durante la prima esecuzione sono più lunghi rispetto alle successive conversioni. Questo comportamento è normale e può essere causato dal caricamento delle risorse iniziali necessarie per la conversione.
Ecco alcune informazioni utili:
Risorse Iniziali: La prima conversione richiede il caricamento delle risorse necessarie, come font, modelli e altre dipendenze, che possono aumentare il tempo di esecuzione.
Inizializzazione: L’uso di un documento temporaneo per aggiornare la disposizione della pagina, come hai menzionato, aiuta a mitigare ma non elude completamente il problema iniziale.
Soluzioni Proposte
Per migliorare le performance della prima conversione, puoi considerare le seguenti soluzioni:
Cache delle Risorse: Creare una cache delle risorse comuni utilizzate durante la conversione per ridurre i tempi di caricamento iniziali.
Ottimizzazione del Codice: Assicurati che il tuo codice sia ottimizzato per eseguire la conversione senza_MEM or CPU intensive operations nel frattempo.
Esempio di Codice
Ecco un esempio di come puoi inizializzare un documento temporaneo prima della conversione:
// Inizializzazione del collegamento temporaneo
Document docTmp = new Document();
docTmp.updatePageLayout();
// Conversioni successive
Document doc = new Document("input.docx");
doc.save("output.pdf");
Se continui a riscontrare problemi, ti preghiamo di fornire ulteriori dettagli come il tipo di documenti che stai convertendo e la configurazione dell’ambiente di esecuzione.
@matteos Il problema potrebbe verificarsi perché alla prima chiamata Aspose.Words inizializza risorse statiche, come i font, che vengono poi riutilizzate nelle chiamate successive.
È possibile creare un documento vuoto e salvarlo come PDF, ad esempio, all’avvio dell’applicazione per forzare Aspose.Words a inizializzare le risorse ed evitare un avvio “a freddo” durante le richieste effettive.
nonostante abbiamo applicato la soluzione proposta all’avvio della mia applicazione in cui utilizzo Aspose.Words Java la problematica della lentezza delle prime elaborazioni persiste ma anche dopo un certo periodo che non viene utilizzata l’applicazione alla prima nuova richiesta il tempo di elaborazione a parità di documento risulta essere più lento. Esiste qualche cache che viene pulita da Aspose o è necessaria qualche configurazione nel servizio che lo wrappa (es.: garbage collector ecc…)
@matteos Purtroppo non ho altri suggerimenti da darti per aumentare la conversione. Se possibile, potresti creare un’applicazione o un codice semplice che ci permetta di riprodurre il problema da parte nostra?