Turbocharging the Indexer
I recently had some time to take a look at some of the improvements we want to make for future version of Carbide. One that I’m really interested in is the ability to build and use externally pre-built SDK source file indexes (aka PDOMs). New APIs have been introduced based on work by Andrew Ferguson over at Symbian and the rest of the CDT-land developers. I plugged these APIs into the Carbide builder and pre-indexed the entire ‘\epoc32\include\’ tree for a Symbian OS source base. Now when projects are imported and an index is created for the project, the indexer can skip over the includes have all ready been parsed: you get the time improvement with no impact on navigation ability.
Some early benchmarks look promising on a couple of test projects:
|
Preparsed PDOM(Y/N)
|
Time
|
Size
|
Headers Parsed
|
|
Project = Agenda (45 source files)
|
|||
|
No
|
1min 50 sec
|
9.4 MB
|
380
|
|
Yes
|
16 sec
|
1 MB
|
65
|
|
Project = Helloworld (5 source files)
|
|||
|
No
|
17 sec
|
176 KB
|
154
|
|
Yes
|
0.4 sec
|
32 KB
|
1
|
Other than saving valuable processing time for tasks other than indexing the same files over and over there are multiple other uses for pre-built PDOMs. We’ll be investigating those over the next development cycle.


