I have heard that improving software efficiency and algorithms over the years has made
huge performance gains
Penso che ciò che hai ascoltato qui sia correlato a algoritmi migliori, ma questo è ciò che hai esplicitamente escluso dalla tua domanda.
A livello dei sistemi operativi, non credo che molte applicazioni siano più veloci oggi rispetto a 10 anni fa perché il sistema operativo è migliorato (nella maggior parte dei casi è vero il contrario - la maggior parte dei sistemi operativi diventa sempre più grande ogni anno, producendo un sovraccarico maggiore ). L'unica eccezione potrebbe essere il supporto migliore per processori multipli e calcolo parallelo, ma ciò non può essere visto indipendentemente dai miglioramenti dell'hardware.
Per i compilatori, ci sono stati alcuni miglioramenti dei decenni, ma quelli con il maggiore impatto sulle prestazioni sono stati i miglioramenti per supportare le funzionalità del nuovo hardware. Le funzionalità di calcolo parallelo IMHO (multicore, SIMD ecc.) E l'elaborazione a 64 bit sono le cose più importanti da menzionare qui. EDIT: c'è un aspetto in cui i miglioramenti nel software del compilatore hanno aumentato le prestazioni delle applicazioni di circa un ordine di grandezza negli ultimi 10-20 anni: compilatori just-in-time, specialmente quelli per Java (dal 1999) e successivi Javascript .
Quindi arriva principalmente all'hardware. In termini di 20 o 30 anni fa, era principalmente la velocità di clock del processore, dove l'aumento correlava approssimativamente 1: 1 nelle prestazioni delle applicazioni per molte applicazioni (non è perfettamente vero, il vero aumento è stato minore poiché le prestazioni dell'applicazione dipendono anche da altri componenti hardware come velocità di accesso alla memoria, velocità del disco rigido, velocità della GPU, ecc.). Quando si pensa agli ultimi 10 anni, la velocità di clock del processore non è aumentata molto di più, poiché i produttori di processori hanno raggiunto i limiti pratici di produzione. Invece, c'è stato un cambio di paradigma nel calcolo parallelo. Processore multi-core, GPU computing (che è anche una forma di calcolo parallelo), SIMD nel mainstream ecc. Hanno dominato l'ultimo decennio.