Skip to content

Various TTFX improvements - #3013

Open
JamesWrigley wants to merge 1 commit into
JuliaDocs:masterfrom
JamesWrigley:ttfx
Open

JamesWrigley wants to merge 1 commit into
JuliaDocs:masterfrom
JamesWrigley:ttfx

Conversation

@JamesWrigley

Copy link
Copy Markdown
Contributor
  • The autodocs sorting comparator previously called string(x) for every comparison, which is quite expensive with many complex types. Now we convert to strings once and cache them in a dict.
  • allbindings() (used in the missing docs check) stored signatures in a Set{Type}, which required hashing each type, which required specializing hash() for each type, which is slow. Now we use a Vector{Type} instead. For CImGui that almost entirely eliminated the ~7s of the missing docs check.
  • Expanded the precompilation workload.
  • Added some type-asserts/conversions to make the package more resistant to invalidations.

Combined with JuliaDocs/DocStringExtensions.jl#309, this dropped the time to build the docs for CImGui.jl from ~38s to ~7s on my machine. Written with help from Claude 🤖

@JamesWrigley
JamesWrigley force-pushed the ttfx branch 2 times, most recently from 076c25c to 51ce4fc Compare October 17, 2026 17:26
- The autodocs sorting comparator previously called `string(x)` for every
  comparison, which is quite expensive with many complex types. Now we convert
  to strings once and cache them in a dict.
- `allbindings()` stored signatures in a `Set{Type}` which required hashing each
  type, which required specializing hashing for each type, which is slow. Now we
  use a `Vector{Type}` instead.
- Expanded the precompilation workload.
- Added some type-asserts/conversions to make the package more resistant to
  invalidations.
@JamesWrigley

Copy link
Copy Markdown
Contributor Author

(bump)

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant