-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve performance of #Lineage
and BindLineage
#137
Comments
We'll definitely want to add some benchmark tests as part of this. And i see that https://pkg.go.dev/golang.org/x/perf/cmd/benchstat exists, which could be useful in helping us track progress against this over time. |
Related with that, I've just discovered gobenchdata, and it looks really nice! Example demo: https://gobenchdata.bobheadxi.dev/ |
oh amazing, that looks like the path of least resistance |
Some initial insights from |
Performance of lineage loading and binding declined significantly with lineage flattening (#82). Preliminary profiling (I've attached a - lol - screenshot) indicates that most of the problem occurs during calls to
cue.Context.BuildInstance()
, which indicates that it's the CUE evaluator struggling with working out all the new internal structures within the native CUE definition of#Lineage
.(Note that the profiler has erroneously put
cue.Value.Unify
underload.Instances
- the main cost there is incurred during theBuildInstance()
call).)My guess is that we have some low-hanging fruit here related to some of the new disjunctions introduced. I suspect we can express the same constraints in a different way and improve performance here ocnsiderably.
The text was updated successfully, but these errors were encountered: