Great question! In general this isn't a huge concern because, in practice, we already perform indexing by default since both of Swift-DocC's integrations with Xcode and the Swift-DocC Plugin pass the --index
flag.
However, the data is still interesting and relevant here. I went ahead and collected data for both Swift-Markdown and Swift-Syntax:
Project | Building with Indexing Disabled | Building with LMDB Indexing (Current Default) | Building With LMDB+JSON Indexing (Proposed Default) | Building With JSON Indexing (Future Default) |
---|---|---|---|---|
Swift Markdown |
1.01 | 1.10 | 1.10 | 1.06 |
SwiftSyntax |
23.51 | 26.37 | 27.24 | 25.37 |
Values in seconds show the average time, over three runs, it took docc
to perform a full conversion, excluding the time it takes the Swift compiler to emit the symbol graph files.
What it shows is that while we'll take a slight performance hit for taking the time to emit both the LDMB and JSON representation, we'll see a greater performance win when we can fully migrate to JSON.
I think this definitely shows that we should prioritize making the JSON and LMDB fully interoperable in the near future.