Come capire quale parte del mio codice d richiede molto tempo per essere compilata?D profilo del compilatore
Ho provato a utilizzare valgrind, ma i nomi dei metodi non erano molto intuitivi. 87% del tempo è stato speso in <cycle 7>
, il 40% del tempo in _D4ddmd5lexer5Lexer4scanMFPS4ddmd6tokens5TokenZv
Sto cercando qualcosa di simile: il 40% del tempo è stato speso per xy.d
, da quel 80% del tempo ha preso la compilazione di vari istanze del modello xyz
e un motivo è perché ha usato il memcpy
il 99% delle volte.
Sono interessato a profilare sia DMD che LDC.
In quale lingua è scritto il compilatore D? Puoi eseguire una versione di debug del compilatore D sotto GDB? Se puoi, mettilo in pausa e guarda attraverso la struttura dei dati del compilatore e vedi a cosa sta lavorando. Fatelo un paio di volte. Quello su cui sta lavorando sarà più evidente.Non hai bisogno di nulla come misurazioni esatte. –
Non so (ancora) come collegarlo a GDB, e come ottenere una versione di debug dei compilatori, ma ci proverò. – Tamas