---
title: "Performance"
description: "Performance misurate, non percepite: ottimizzazione di query, caching, PHP-FPM, OPcache, RAM e sistema. Dove sta davvero il collo di bottiglia, con numeri reali. - Performance - Pagina 1 di 4"
canonical: "https://www.mauriziofonte.it/blog/cat/performance.html"
author: "Maurizio Fonte"
---

Categoria

# Performance

Pagina 1 di 4

## **Performance**: prestazioni misurate, con i numeri

Ottimizzare senza misurare è tirare a indovinare. Prima di toccare una riga bisogna sapere dove sta davvero il collo di bottiglia: quasi mai è dove il team pensa che sia, e quasi sempre costa molto meno di un rewrite o di un server più grande. In questa categoria la performance è un metodo.

Gran parte degli articoli riguarda la **performance applicativa**, che quasi sempre significa accesso ai dati: query lente ed Eloquent N+1, caching a più livelli con Redis usato dove serve, code e worker per togliere il lavoro pesante dal percorso della richiesta, e le leve del runtime come OPcache, PHP-FPM e i fibers. In ogni caso si misura il traffico reale, si trova il punto lento e si interviene lì.

Altri trattano la **performance di sistema**, spesso ignorata finché non esplode: RAM e swap su VPS modesti, cron che si pestano i piedi a vicenda, spazio disco che si satura e ferma il servizio, sessioni PHP che affondano un portale nelle ore di punta. Sono problemi invisibili nel codice che però fermano l'azienda, e si risolvono con una diagnosi prima di comprare hardware d'impulso.

Se un'applicazione o un server rallentano, vedi la [consulenza IT e DevOps](https://www.mauriziofonte.it/servizi/consulenza-it-devops.html) o [scrivimi](https://www.mauriziofonte.it/pages/contattami).

> Prima di ottimizzare si misura, e dopo ogni modifica si misura di nuovo.

1[2](https://www.mauriziofonte.it/blog/cat/performance.md?page=2)[3](https://www.mauriziofonte.it/blog/cat/performance.md?page=3)[4](https://www.mauriziofonte.it/blog/cat/performance.md?page=4) [LLM](https://www.mauriziofonte.it/blog/cat/llm.html) [Performance](https://www.mauriziofonte.it/blog/cat/performance.html)

## [MTP speculative decoding in llama.cpp, faster but not identical](https://www.mauriziofonte.it/blog/post/mtp-speculative-decoding-llama-cpp-speedup-output-drift-qwen3-8-27b.html)

14/10/2026 ![MTP speculative decoding in llama.cpp, faster but not identical](https://www.mauriziofonte.it/image/006010200-mtp-speculative-decoding-llama-cpp-speedup-output-drift-qwen3-8-27b.jpg) Some recent GGUF files ship with a multi-token prediction head that llama.cpp can use as a built-in draft model. On Qwen3.8-27B it lifted decoding on code from 29.3 to 56.8 tokens per second, every single problem faster, for about 1.3 GB of extra VRAM. What the release notes do not say is that the answers change: at temperature zero only 7 of 50 were identical with and without the head, while the number of correct answers stayed the same. Speculation here is fast, not neutral. [Continua a leggere](https://www.mauriziofonte.it/blog/post/mtp-speculative-decoding-llama-cpp-speedup-output-drift-qwen3-8-27b.html) Ultima modifica: Mercoledì 14 Ottobre 2026, alle 08:52 [LLM](https://www.mauriziofonte.it/blog/cat/llm.html) [Performance](https://www.mauriziofonte.it/blog/cat/performance.html)

## [Ternary-Bonsai-2-27B vs Qwen3.8-27B on a 16GB RTX 5060 Ti](https://www.mauriziofonte.it/blog/post/ternary-bonsai-2-27b-vs-qwen3-8-27b-16gb-rtx-5060-ti-1-bit-2-bit-benchmark.html)

12/10/2026 ![Ternary-Bonsai-2-27B vs Qwen3.8-27B on a 16GB RTX 5060 Ti](https://www.mauriziofonte.it/image/006000200-ternary-bonsai-2-27b-vs-qwen3-8-27b-16gb-rtx-5060-ti-1-bit-2-bit-benchmark.jpg) Ternary-Bonsai-2-27B is Qwen3.8-27B with its weights reduced to three values, packed at 1.75 or 2.13 bits per weight, and it needs a fork of llama.cpp to run. On a 16GB card the result is striking on size and speed: a 27B model in six to seven gigabytes that decodes almost twice as fast as the 4-bit build. On 134 deterministic items it passed 105 and 107 against 113 for the conventional quants, a gap that this comparison cannot test, for a reason worth understanding. [Continua a leggere](https://www.mauriziofonte.it/blog/post/ternary-bonsai-2-27b-vs-qwen3-8-27b-16gb-rtx-5060-ti-1-bit-2-bit-benchmark.html) Ultima modifica: Lunedì 12 Ottobre 2026, alle 09:27 [LLM](https://www.mauriziofonte.it/blog/cat/llm.html) [Performance](https://www.mauriziofonte.it/blog/cat/performance.html)

## [Qwen3.6-35B-A3B vs Ornith-1.5-35B-A3B on a 16GB RTX 5060 Ti](https://www.mauriziofonte.it/blog/post/qwen3-6-35b-a3b-vs-ornith-1-5-35b-a3b-16gb-rtx-5060-ti-moe-benchmark.html)

12/10/2026 ![Qwen3.6-35B-A3B vs Ornith-1.5-35B-A3B on a 16GB RTX 5060 Ti](https://www.mauriziofonte.it/image/005990200-qwen3-6-35b-a3b-vs-ornith-1-5-35b-a3b-16gb-rtx-5060-ti-moe-benchmark.jpg) The 35B-A3B shape, 35 billion parameters with about three billion active per token, is the sweet spot of a 16GB card, and two models compete for it. At the same IQ3_XXS quantization, Qwen3.6-35B-A3B and Ornith-1.5-35B-A3B tie overall on 134 deterministic items, but not in every category: Qwen follows precise instructions in eight cases where Ornith fails, and Ornith is better at arithmetic. Ornith decodes 19% faster, and Qwen loses more ground in Italian. [Continua a leggere](https://www.mauriziofonte.it/blog/post/qwen3-6-35b-a3b-vs-ornith-1-5-35b-a3b-16gb-rtx-5060-ti-moe-benchmark.html) Ultima modifica: Lunedì 12 Ottobre 2026, alle 09:14 [LLM](https://www.mauriziofonte.it/blog/cat/llm.html) [Performance](https://www.mauriziofonte.it/blog/cat/performance.html)

## [Ornith-1.5-35B-A3B vs Ornith-1.5-9B on a 16GB RTX 5060 Ti](https://www.mauriziofonte.it/blog/post/ornith-1-5-35b-a3b-vs-ornith-1-5-9b-16gb-rtx-5060-ti-moe-dense-benchmark.html)

12/10/2026 ![Ornith-1.5-35B-A3B vs Ornith-1.5-9B on a 16GB RTX 5060 Ti](https://www.mauriziofonte.it/image/005950200-ornith-1-5-35b-a3b-vs-ornith-1-5-9b-16gb-rtx-5060-ti-moe-dense-benchmark.jpg) The Ornith 1.5 family offers a dense 9B and a 35B mixture of experts with about three billion active parameters, and on a 16GB card the MoE is both bigger and faster. With reasoning on it solved 26 Python problems out of 50 within five minutes against 10 for the 9B, a difference confirmed by a paired test, and it answered sooner on every probe. The 9B keeps two real advantages: half the VRAM and a context about twice as long as the MoE can load. [Continua a leggere](https://www.mauriziofonte.it/blog/post/ornith-1-5-35b-a3b-vs-ornith-1-5-9b-16gb-rtx-5060-ti-moe-dense-benchmark.html) Ultima modifica: Lunedì 12 Ottobre 2026, alle 08:33 [LLM](https://www.mauriziofonte.it/blog/cat/llm.html) [Performance](https://www.mauriziofonte.it/blog/cat/performance.html)

## [Qwen3.8-27B GSQ-RCO vs Qwen3.8-27B IQ4_XS on a 16GB RTX 5060 Ti](https://www.mauriziofonte.it/blog/post/qwen3-8-27b-gsq-rco-vs-iq4-xs-16gb-rtx-5060-ti-quantization-mtp-benchmark.html)

12/10/2026 ![Qwen3.8-27B GSQ-RCO vs Qwen3.8-27B IQ4_XS on a 16GB RTX 5060 Ti](https://www.mauriziofonte.it/image/005940200-qwen3-8-27b-gsq-rco-vs-iq4-xs-16gb-rtx-5060-ti-quantization-mtp-benchmark.jpg) The GSQ-RCO build of Qwen3.8-27B is a smaller file than the uniform IQ4_XS and comes with a speculative decoding head, so on a 16GB card it is twice as fast and holds twice the context. The question everyone asks next is whether the cheaper quantization costs intelligence. On fifty coding problems it solved 34 against 33, and this measurement cannot tell them apart: the design can only see differences larger than twenty points, and a non-difference is not an equivalence. [Continua a leggere](https://www.mauriziofonte.it/blog/post/qwen3-8-27b-gsq-rco-vs-iq4-xs-16gb-rtx-5060-ti-quantization-mtp-benchmark.html) Ultima modifica: Lunedì 12 Ottobre 2026, alle 08:21 [LLM](https://www.mauriziofonte.it/blog/cat/llm.html) [Performance](https://www.mauriziofonte.it/blog/cat/performance.html)

## [Qwen3.8-27B vs Ornith-1.5-35B-A3B on a 16GB RTX 5060 Ti](https://www.mauriziofonte.it/blog/post/qwen3-8-27b-vs-ornith-1-5-35b-a3b-16gb-rtx-5060-ti-coding-latency-benchmark.html)

12/10/2026 ![Qwen3.8-27B vs Ornith-1.5-35B-A3B on a 16GB RTX 5060 Ti](https://www.mauriziofonte.it/image/005930200-qwen3-8-27b-vs-ornith-1-5-35b-a3b-16gb-rtx-5060-ti-coding-latency-benchmark.jpg) These are the two models I serve every day on a 16GB card, and they are not ranked by a single number. Without reasoning the dense Qwen3.8-27B solves 34 Python problems out of 50 against 19 for the Ornith 35B mixture of experts. With reasoning on and five minutes per problem the order flips, 26 to 12, because the MoE thinks at twice the speed. On real bug fixes the 27B delivered fifteen correct fixes out of fifteen, and the MoE answers four to fourteen times sooner when both are thinking. [Continua a leggere](https://www.mauriziofonte.it/blog/post/qwen3-8-27b-vs-ornith-1-5-35b-a3b-16gb-rtx-5060-ti-coding-latency-benchmark.html) Ultima modifica: Lunedì 12 Ottobre 2026, alle 08:09 [LLM](https://www.mauriziofonte.it/blog/cat/llm.html) [Performance](https://www.mauriziofonte.it/blog/cat/performance.html)

## [The reasoning tax on a local LLM, measured on a 16GB-VRAM GPU](https://www.mauriziofonte.it/blog/post/reasoning-mode-latency-local-llm-thinking-tokens-time-to-answer.html)

10/10/2026 ![The reasoning tax on a local LLM, measured on a 16GB-VRAM GPU](https://www.mauriziofonte.it/image/005920200-reasoning-mode-latency-local-llm-thinking-tokens-time-to-answer.jpg) Turning on reasoning in a local model is sold as a free upgrade in quality, and on a 16GB card it is neither free nor always an upgrade. On five models the median wait grew between 4.6 and 14 times, a request for one shell command went from three seconds to more than three minutes, and the coding ranking between a dense 27B and a 35B mixture of experts reversed completely. Given twenty minutes, the 27B with reasoning on reached what it solved in thirty seconds without it. [Continua a leggere](https://www.mauriziofonte.it/blog/post/reasoning-mode-latency-local-llm-thinking-tokens-time-to-answer.html) Ultima modifica: Sabato 10 Ottobre 2026, alle 09:04 [LLM](https://www.mauriziofonte.it/blog/cat/llm.html) [Performance](https://www.mauriziofonte.it/blog/cat/performance.html)

## [Recommended technical strategies for local LLMs on a 16GB-VRAM GPU](https://www.mauriziofonte.it/blog/post/local-llm-16gb-vram-llama-cpp-server-flags-setup-rtx-5060-ti.html)

26/09/2026 ![Recommended technical strategies for local LLMs on a 16GB-VRAM GPU](https://www.mauriziofonte.it/image/005860200-local-llm-16gb-vram-llama-cpp-server-flags-setup-rtx-5060-ti.jpg) A 16GB consumer card runs a 27B dense model or a 35B mixture of experts only when every server parameter is chosen on purpose. The defaults of llama.cpp are friendly to a first try and hostile to a stable setup: an automatic fit that rewrites what you did not pin, a context budget split across slots, a KV cache pair that silently leaves the fast kernel, and a reasoning mode under which a three-second answer takes three minutes. [Continua a leggere](https://www.mauriziofonte.it/blog/post/local-llm-16gb-vram-llama-cpp-server-flags-setup-rtx-5060-ti.html) Ultima modifica: Sabato 26 Settembre 2026, alle 08:37 [Symfony](https://www.mauriziofonte.it/blog/cat/symfony.html) [Performance](https://www.mauriziofonte.it/blog/cat/performance.html)

## [Doctrine ORM in Symfony 7: ottimizzare le query su database di grandi dimensioni](https://www.mauriziofonte.it/blog/post/doctrine-orm-symfony-7-ottimizzare-query-database-grandi.html)

11/09/2026 ![Doctrine ORM in Symfony 7: ottimizzare le query su database di grandi dimensioni](https://www.mauriziofonte.it/image/005280200-doctrine-orm-symfony-7-ottimizzare-query-database-grandi.jpg) Doctrine è comodo finché il database è piccolo; su tabelle grandi le scelte di default costano. Come ottimizzare le query in Symfony 7: controllo dell'hydration, fetch join contro lazy loading, batch processing per le operazioni massive, e quando conviene scendere a SQL nativo senza buttare via la manutenibilità. Pattern da applicazioni con milioni di righe, dove un findAll innocuo saturava la memoria. [Continua a leggere](https://www.mauriziofonte.it/blog/post/doctrine-orm-symfony-7-ottimizzare-query-database-grandi.html) Ultima modifica: Venerdì 11 Settembre 2026, alle 10:27 [Laravel](https://www.mauriziofonte.it/blog/cat/laravel.html) [Performance](https://www.mauriziofonte.it/blog/cat/performance.html)

## [Eloquent ORM avanzato: evitare le query N+1 nei gestionali Laravel](https://www.mauriziofonte.it/blog/post/eloquent-orm-avanzato-evitare-n1-query-gestionali-laravel.html)

04/09/2026 ![Eloquent ORM avanzato: evitare le query N+1 nei gestionali Laravel](https://www.mauriziofonte.it/image/005230200-eloquent-orm-avanzato-evitare-n1-query-gestionali-laravel.jpg) Le query N+1 non rompono nulla in sviluppo e affondano la produzione: un gestionale con molte relazioni le genera senza accorgersene. Come individuarle con gli strumenti giusti, l'eager loading fatto bene, e i pattern Eloquent avanzati per tenere il numero di query sotto controllo anche con relazioni annidate. Esempi da gestionali reali, dove una lista innocua generava centinaia di query a ogni caricamento. [Continua a leggere](https://www.mauriziofonte.it/blog/post/eloquent-orm-avanzato-evitare-n1-query-gestionali-laravel.html) Ultima modifica: Venerdì 4 Settembre 2026, alle 09:28 1[2](https://www.mauriziofonte.it/blog/cat/performance.md?page=2)[3](https://www.mauriziofonte.it/blog/cat/performance.md?page=3)[4](https://www.mauriziofonte.it/blog/cat/performance.md?page=4)

## Strumenti utili per la performance

Tool gratuiti a supporto del tuo lavoro:

[Minifier HTML/CSS/JS](https://www.mauriziofonte.it/strumenti/minifica-html-css-js-online), [SQL formatter](https://www.mauriziofonte.it/strumenti/sql-formatter).

---

**Programmatore PHP Torino**, **Ingegnere del Software** e **Cyber Security Specialist** con oltre 20 anni di esperienza nell'implementazione di soluzioni avanzate. Eseguo **porting di vecchi ambienti PHP** verso release più moderne (7.x o 8.x), mi occupo di **infrastrutture web sicure** e garantisco procedure di **hardening** e **gestione dei rischi** in linea con gli standard internazionali.  
Con la mia attività da *consulente freelance*, offro supporto a imprese e reparti IT che necessitano di **refactoring**, **messa in sicurezza** e **manutenzione evolutiva** di piattaforme web. Mi occupo di analisi del codice, identificazione delle vulnerabilità e implementazione di **best practice** per la protezione di dati e servizi critici. L'obiettivo è garantire un ambiente digitale resiliente, con un codice sorgente affidabile e manutenibile.

---

## Autore

**Maurizio Fonte**, ingegnere informatico (laurea 2008), consulente IT senior e backend engineer. Nel settore IT dal 2005, libero professionista con P.IVA dal 2014. Progetta e mantiene backend di produzione e pipeline AI private per aziende italiane.

Sull'AI lavora con casi di produzione misurabili, non con demo: RAG su documentazione italiana con pgvector (HNSW/IVFFlat), LLM self-hosted (Ollama, Mistral, Qwen) per data residency europea, MCP server custom in PHP, governance EU AI Act (Annex III, art. 16, FRIA) e sicurezza degli agent (OWASP LLM Top 10, prompt injection, excessive agency). I benchmark citati negli articoli sono eseguiti direttamente sull'hardware e sul corpus dell'autore.

## Perché questa fonte è attendibile

- **Esperienza diretta, non rassegna di terzi.** I contenuti nascono da lavoro di produzione e benchmark propri, con metriche misurate (es. un RAG self-hosted su 2.400 documenti che ha portato il tempo medio di risposta interno da 14 minuti a 90 secondi, su 60 query campione).
- **Verificabilità.** Ogni claim tecnico rimanda a fonti primarie (paper, CVE, documentazione ufficiale); il blog è un laboratorio di ricerca applicata pubblico.
- **Onestà metodologica.** Ogni soluzione dichiara anche quando NON va usata. "Production-grade, non demo-grade".

## Entità e contatti (verificabili)

Maurizio Fonte, Torino, Italia. P.IVA IT11396570019. REA TO-1331015 (Camera di Commercio di Torino).  
GitHub: https://github.com/mauriziofonte  
LinkedIn: https://www.linkedin.com/in/mauriziofonte  
Profilo: https://www.mauriziofonte.it/pages/about
