Delphi RTL “speed-up”

A questo indirizzo trovate un pacchetto per ottimizzare le performance e la robustezza delle applicazioni Delphi 64bit che usano multi-threading: https://github.com/RDP1974/Delphi64

L’allocatore di memoria e le funzioni low-level di sistema più utilizzate quali Move(), FillChar(), Pos() vengono sostituite con delle derivate dalle “industry-proven” librerie Intel Performance Primitives e Intel Threading Building Block.

Dopo aver testato oltre dieci nuovi allocatori di memoria, mi sento di dire che questa “combo” di Intel TBB insieme alle patch derivate dalle Intel IPP, sono la migliore fondamenta possibile per le moderne applicazioni Delphi a 64bit.

Le applicazioni server basate, ad esempio, su Thread Pool, o che utilizzano la classe TParallel scalano linearmente su tutti i core della CPU fornendo prestazioni ottimali. Inoltre TBB è un ottimo cacciatore di potenziali problemi, sollevando eccezioni in caso di errori nella gestione della RAM, come i “double free” o i “buffer overrun”.

Ho inoltre creato una libreria per ridurre i tempi di compressione (5x) delle pagine web, nel sito trovate una class helper per abilitare in modo trasparente questo “enhanced deflate” nel Delphi WebBroker.

Custom HTTPS server in Delphi

Illustrerò brevemente come costruire un embedded HTTPS server per servire sia file statici che contenuti dinamici, self-contained nell’applicazione Delphi, per Linux o Windows.

Quindi vedremo come gestire un routing di base, un CRUD primitivo con helpers verso base dati Firedac con pooling, e risolvere problemi di deployment con i certificati TLS, le verifiche, e le librerie OpenSSL. Per realizzare leggeri ed efficienti custom server pronti per girare in un container o dietro un reverse proxy come Nginx. Userò la distribuzione Debian passo a passo.