"mais le problème c'est le temps d'exécution"
Le truc, c'est d'avoir un dictionnaire qui minimisera ton temps de recherche, ou une astuce te permettant de faire des ellipses généreuses sur ton dico ; par exemple, si ton mot à rechercher est turbine, tu gagnerais un temps monstre si tu avais un acces direct aux mots commencant par un T, au lieu de te payer tout le dico. Mais ça c'est peu extensible, donc tu peux passer par d'autres structures adaptées à la recherche, un ABR par exemple, ou réduire ton domaine de recherche en estimant ton texte à une certaine valeur (hash).
Tu es obligé de faire cette opération pour chaque mot de ton texte, donc si ton opération de base est lente, t'es déjà mal barré pour le temps d'execution. Le seul point optimisable, c'est la recherche dans le dico.
Ensuite, basiquement, les correcteurs des logiciels de traitement de texte modernes s'exécutent en parallèle. Ils attendent que tu aies fini de taper ou de modifier un mot et le passent à la moulinette pendant que tu continues à taper, ainsi tu as l'impression que c'est rapide et transparent, mais étant donné que la détection de mots inconnus dans un texte est complexe, la correction du texte en entier prendrait du temps, et ça c'est quasiment incompressible.