Categoria

Pagina 2 di 3

Performance: misurare, profilare, ottimizzare — in quest'ordine

La performance applicativa è un tema su cui si scrivono molte cose sbagliate. La realtà è che non puoi ottimizzare quello che non stai misurando: senza profiling reale su traffico reale, ogni intervento è un tiro al buio. Il mio approccio parte sempre da dati — APM, slow query log, profiler PHP — prima di toccare qualsiasi riga.

In questa categoria trovi articoli su ottimizzazione delle performance di applicazioni PHP e Laravel: profiling con Xdebug/Blackfire/Telescope, query tuning su MySQL/PostgreSQL, caching applicativo con Redis, tuning OPcache, identificazione e risoluzione degli N+1, strategie di cache HTTP. Scrivo anche di load testing con k6 per validare gli interventi prima del go-live.

Se hai un'applicazione lenta che sta perdendo utenti o clienti, parliamone: un'analisi strutturata può identificare interventi ad alto impatto e basso rischio. Oppure scopri come lavoro sulle performance.

"È lento" non è un problema da risolvere. È un sintomo da diagnosticare. La differenza sta nella metodologia.

Rilevamento automatico di N+1 Eloquent con LLM: pipeline di detection continuo su codebase legacy

Rilevamento automatico di N+1 Eloquent con LLM: pipeline di detection continuo su codebase legacy Le N+1 query Eloquent sono il killer silenzioso dei gestionali Laravel: invisibili al code review umano, devastanti sotto carico. Nella mia pipeline personale ho costruito un detector basato su LLM che correla analisi statica del codice con pattern nei query log di produzione: identifica le N+1 reali (non i falsi positivi che PHPStan fa scattare), le prioritizza per impatto misurato sul carico DB, e apre pull request mirate con la correzione. Il metodo che uso su codebase legacy di 10+ anni. Continua a leggere
Ultima modifica:

Elasticsearch in produzione per Laravel: ricerca full-text su cataloghi di grandi dimensioni

Elasticsearch in produzione per Laravel: ricerca full-text su cataloghi di grandi dimensioni Un catalogo prodotti da 200.000 articoli con ricerca MySQL LIKE a 8 secondi. Ho integrato Elasticsearch 8 con Laravel tramite il pacchetto Scout, definito il mapping per il dominio specifico e costruito la sincronizzazione incrementale. La ricerca è scesa a 40ms, con rilevanza di risultati nettamente superiore. Continua a leggere
Ultima modifica:

Ottimizzare PHP-FPM per carichi elevati: pool, worker e tuning avanzato

Ottimizzare PHP-FPM per carichi elevati: pool, worker e tuning avanzato Durante un Black Friday, l'applicazione e-commerce di un cliente ha saturato i worker PHP-FPM in 90 secondi: 502 Bad Gateway per tutti. Il problema non era la CPU o la RAM, ma la configurazione del pool FPM con pm.max_children troppo basso. Vi mostro il processo di tuning che ho usato per non ripetere l'errore. Continua a leggere
Ultima modifica:

CQRS in PHP: separare letture e scritture per applicazioni Laravel ad alto carico

CQRS in PHP: separare letture e scritture per applicazioni Laravel ad alto carico Un'applicazione di reportistica con 50 query analitiche complesse che rallentavano le operazioni transazionali. Con CQRS ho separato i modelli di lettura da quelli di scrittura: le query analitiche usano read model denormalizzati aggiornati asincronamente, le operazioni transazionali volano sul modello normalizzato. Continua a leggere
Ultima modifica:

Laravel Telescope in produzione: debugging avanzato senza impatto sulle prestazioni

Laravel Telescope in produzione: debugging avanzato senza impatto sulle prestazioni Telescope è uno strumento potente ma va usato in produzione con cautela: senza configurazione adeguata, logga dati sensibili degli utenti e rallenta l'applicazione. Vi mostro la configurazione che uso per abilitare Telescope in produzione solo per gli IP del team, con filtri su query, request body e response. Continua a leggere
Ultima modifica:

Eloquent performance: 10 pattern che rallentano le tue query senza che tu lo sappia

Eloquent performance: 10 pattern che rallentano le tue query senza che tu lo sappia Ho usato Laravel Telescope su un'applicazione di e-commerce per analizzare 48 ore di traffico reale. I risultati erano impietosi: 340 query per pagina di listing, di cui 280 erano N+1 generati da relazioni non ottimizzate. Vi mostro i 10 pattern più comuni e come identificarli prima che arrivino in produzione. Continua a leggere
Ultima modifica:

Database sharding in MySQL per applicazioni Laravel con milioni di record

Database sharding in MySQL per applicazioni Laravel con milioni di record Una piattaforma SaaS con 8 milioni di record nella tabella principale aveva query a 4 secondi nonostante tutti gli indici corretti. L'analisi ha mostrato che il problema non era l'indicizzazione ma il volume. Vi racconto l'approccio di sharding che abbiamo implementato con Laravel e come abbiamo gestito la migrazione live. Continua a leggere
Ultima modifica:

Redis in Laravel: beyond caching - code, pub/sub e session management avanzato

Redis in Laravel: beyond caching - code, pub/sub e session management avanzato Molti usano Redis in Laravel solo come cache di secondo livello. Su un'applicazione di prenotazioni con picchi di 500 richieste al secondo, ho sfruttato Redis Sorted Sets per la gestione delle priority queue, Pub/Sub per le notifiche real-time e un layer di session management con persistenza distribuita. Continua a leggere
Ultima modifica:

Laravel Pulse: monitoraggio applicativo nativo senza strumenti esterni

Laravel Pulse: monitoraggio applicativo nativo senza strumenti esterni Laravel Pulse è arrivato come alternativa zero-config agli stack Prometheus/Grafana. L'ho configurato su tre applicazioni in produzione in 20 minuti ciascuna. Non sostituisce tutto, ma copre l'80% delle domande operative quotidiane: richieste lente, job falliti, eccezioni frequenti. Vi mostro la configurazione reale. Continua a leggere
Ultima modifica:

PHP Fibers: concorrenza cooperativa per applicazioni Laravel ad alto carico

PHP Fibers: concorrenza cooperativa per applicazioni Laravel ad alto carico Un'API Laravel che doveva fare 12 chiamate HTTP esterne per comporre una risposta impiegava 3,2 secondi in media. Con PHP Fibers e Octane ho portato lo stesso endpoint a 340ms senza cambiare l'architettura dell'applicazione. Vi spiego come funzionano i Fiber e come integrarli in modo sicuro con Laravel. Continua a leggere
Ultima modifica: