Domanda

La mia configurazione del test: Intel Dual Core 3GHz, Windows XP 32 bit, EMACS 23.2.1, Cedet v1.0 (composto da byte come descritto nei documenti di installazione).

Il file EMACS init è costituito solo da queste quattro righe:

(load "~/vendor/cedet/common/cedet.el")
(semantic-load-enable-code-helpers)
(require 'semantic-ia)
(global-ede-mode 1)

Quando si apri un file C ++ che include una sola funzione, completando quella funzione tramite (semantico-ia-simplete-simbolo) termina solo dopo un ritardo evidente, anche dopo ripetuti tentativi.

Valutare semantic-analyze-current-context mostra che la lentezza è causata dall'analizzatore semantico.

Ecco il File di risultato ELP Dopo aver corso semantic-elp-analyze Più volte, senza cambiare il punto nel buffer. Il tempo totale trascorso è sempre circa 0,6 secondi.

Quando aggiungo un'istruzione include, come #include <stdio.h>, i tempi cambiano in 2,5 secondi. Ecco un corrispondente Risultato ELP.

Gli stessi benchmark non richiedono mai più di 0,1 secondi nel mio ambiente Linux. (Stesso hardware, 23.1 EMACS di Debian, Cedet v1.0)

Qualche idea su cosa potrebbe essere sbagliato nella mia configurazione?

È stato utile?

Soluzione

Si è scoperto che la compilazione di Cedet ha lanciato un sacco di errori che all'inizio non ho notato:

semantic-analyze.el:178:1:Error: Symbol's value as variable is void: filename

Quale ha causato il rallentamento lasciando 81 file non perditi.

Suggerisce Google Questo errore potrebbe essere correlato alle versioni EMACS più recenti di 23.1.

Se si utilizza Cedet-Build.el per la compilazione di cedet, prova la seguente soluzione:

Add (setq filename nil) to the beginning of cedet-build.el
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top