Problemi di prestazioni durante l'analisi del codice [chiuso]

3

Mi chiedevo dei problemi di prestazioni durante l'analisi di un file sorgente che viene modificato dall'utente (ad esempio, quando è necessario fornire un evidenziamento della sintassi).
Penso che l'approccio più semplice sia quello di analizzare ogni volta che il codice cambia, ottenere i risultati e sostituire il codice corrente con quello evidenziato. Con file di grandi dimensioni questo potrebbe essere un problema. C'è un modo migliore per farlo?

Suppongo che una soluzione potrebbe essere quella di analizzare solo la "zona" in cui c'era l'ultima modifica. È una buona idea?

    
posta Donovan 13.04.2011 - 10:27
fonte

1 risposta

2

Se utilizzi un parser Packrat puoi invalidare solo i terminali memorizzati nella cache che si sovrappongono alla regione modificata e quindi eseguire nuovamente l'analisi dell'intero buffer: solo i terminali mancanti verranno risintonizzati.

Altrimenti ti servirà un approccio più personalizzato, in cui utilizzerai espressioni regolari, ad esempio, per rilevare l'inizio delle dichiarazioni di primo livello e iniziare l'analisi solo da quei punti e solo in una regione invalidata. Questo è ciò che la maggior parte dei moderni IDE sta facendo.

    
risposta data 13.04.2011 - 13:12
fonte

Leggi altre domande sui tag