Davide Gullo, Consulente web

04.02.2012
14:02 (+00:00)
05a settimana
34o giorno

  "E il mare il web concederà ad ogni uomo nuove speranze, come il sonno i sogni..." Cristoforo Colombo

PHP Excel, la classe migliora notevolmente le performance

martedì, 25 agosto 2009

phpexcel (codeplex) logo

Utilizzo la classe PHPExcel da un oltre un anno in un progetto sviluppato per Energika. L’anno scorso, dopo aver anche dato il mio piccolo contributo alla classe, il progetto è andato in produzione con la vecchia release 1.6.3

Come spesso accade, quando le cose funzionano, difficilmente si aggiorna una libreria. Si dovrebbe, certo, ma non è sempre così. Se l’aggiornamento richiede modifiche al codice lasci tutto come sta. Se l’aggiornamento rischia di fermare l’azienda non tocchi nulla. Poi mettici il tempo che è sempre meno…
Se invece la richiesta di ottimizzazione del codice arriva direttamente da parte del cliente (sono veramente pochi!) lo fai, eccome!
Ho passato quindi una settimana a rivedermelo per filo e per segno. Tra aggiornamenti, qualche dritta di Maarten e modifiche al codice originario siamo arrivati ad un ottimo risultato: un abbattimento dei tempi del 70% circa!

Come evidenziato nel changelog la nuova classe PHPExcel ultima versione (1.7.0), rilasciata proprio in questi giorni (il 10/08/09), migliora le performance nelle operazione di formattazione delle celle, nello sviluppo delle formule e altre utilissime funzioni.

Dal file changelog 1.7.0:
- Feature:  (MBaker) – New RPN and stack-based calculation engine for improved performance of formula calculation
-   Faster (anything between 2 and 12 times faster than the old parser, depending on the complexity and nature of the formula)
-   Significantly more memory efficient when formulae reference cells across worksheets
….
-   Better trapping/handling of NaN and infinity results (return #NUM! error)
-   Improved handling of empty parameters for Excel functions
- Feature:  (MBaker) – New calculation engine can be accessed independently of workbooks (for use as a standalone calculator)
….
- Feature:  (ET) Work item  9794 – Support arbitrary fixed number of decimals in PHPExcel_Style_NumberFormat::toFormattedString()
- Feature:  (ET) Work item  6857 – Improving performance and memory on data dumps
-    Various style optimizations (merging from branch wi6857-memory)

Nessun commento

Scrivi un commento
Istruzioni e suggerimenti

A capo e la separazione tra i paragrafi sono automatici.
L'indirizzo e-mail non verrà mai mostrato.
Il codice HTML permesso è:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">
I campi con * sono obbligatori.





TrackBack

TrackBack URI per questo articolo

 

Pinguino imperatore

Aptenodytes forsteri,
descritto da G. R. Gray nel 1844, Mari Antartici.

Tux è la mascotte ufficiale del kernel Linux. Creato da Larry Ewing nel 1996, è un pinguino paffuto dall'aria contenta. L'idea che la mascotte di Linux dovesse essere un pinguino venne da Linus Torvalds, il creatore del kernel Linux.
[FSF Associate Member]
Free Software Foundation
Associate Member
Join!
Davide Gullo
   Crea il tuo badge