Profile this agent - Analizzare le perfomance di un agente lotusscript
Vincenzo Capponcelli March 2 2010 11:47:37 AM
Ho usato con soddisfazione lo strumento Profile this agent già presente dalla release 7 di notes.Permette di analizzare i tempi di esecuzione di metodi e proprietà lotusscript e quindi individuare e risolvere problemi di performance.
L'ho utilizzato per un agente Lotuscript che impiegava oltre 27 minuti e cambiando poche di righe di codice sono riuscito a portarlo a soli 4 minuti.
L'utilizzo è semplice:
- si attiva l'opzione "Profile this agent" nelle proprietà dell'agente
- si esegue l'agente
- si esegue il comando "View Profile Results" per aprire il report dove sono riepilogati i metodi lotusscript richiamati specificando per ognuno il n° di volte e millisecondi impiegati
L'agente in questione è un tipico script di aggiornamento anagrafiche che utilizza le classi LSX ODBC.
Si parla di oltre 36.000 record e per ogni riga più di 50 colonne da aggiornare.
Non capivo se il problema era a livello di ODBC, nel ciclo sulle righe/colonne, nei tempi di scrittura, ecc...
Lanciando l'agente con il "profile this agent" ho notato che 3/4 del tempo era impiegato nell'attività di [expandename] ossia quando richiamo il valore di un campo direttamente dalla classe notesdocument (es. doc.nomecampo).
Nel mio caso utilizzavo doc.nomecampo per leggere da un documento profilo il nome delle colonne ODBC (ripetuto quindi per 50 colonne x 36.000 righe )
Forall colonna in docprofilo.elencocolonne
........
End forall
è quindi bastato inserire inizialmente il valore del campo "elencocolonne" in un array per azzerrare il tempo impiegato dal metodo [expandedname]
arrayelencocolonne=docprofilo.elencocolonne
For indexcolonna=0 To ubound (arrayelencocolonne)
.........
next
Report del "View Profile Results":
- Comments [0]