Supponendo che tu stia parlando della velocità di esecuzione e non della velocità di sviluppo, C potrebbe essere difficile da battere. Ma non credo che batterebbero Java o persino Python di questi tempi. Python è in gran parte un sottile wrapper su implementazioni C, anche se con una sintassi più efficiente e una libreria più ricca.
In definitiva, penso che il tuo programma sarà vincolato all'I / O. L'aggiunta di più thread o processi probabilmente non consentirà di recuperare i dati dal disco o dalla rete più velocemente.
Per ridurre al minimo il tempo di CPU del tuo programma (al contrario del suo tempo di esecuzione), dovresti usare la libreria di espressioni regolari più veloce che puoi trovare, e semplificare il più possibile il formato del registro e regex. Un approccio a più passaggi per analizzare le linee di log potrebbe aiutare anche a usare qualcosa di semplice e veloce per suddividere le righe di log in frasi e quindi passare le frasi per separare espressioni regolari che sarebbero collettivamente più semplici e veloci di una singola regex a analizzare l'intera riga.
Per parallelizzare, avrei le linee di vendita del thread principale a un pool di processori di linea, ognuno eseguito su un thread separato, forse con n code per i n thread. Potresti avere linee elaborate in ordine, quindi fai attenzione. E se un thread di elaborazione è ancora più veloce del disco o dell'I / O di rete, allora stai aggiungendo complessità senza alcun guadagno reale.
Soprattutto, quando si cerca di migliorare la velocità, il profilo e misurare prima e dopo ogni cambiamento. Devi essere in grado di dimostrare che stai facendo il programma più velocemente.