Open
Description
As requested in #2621 (comment) (which also contains some ideas).
Open PRs:
- [Perf] Reduce allocations in basic circuit operations #2620
- [Perf] Simplify the R1CS > Assignment conversion #2621
- [Perf] Use SmallVec in LinearCombination #2622
Potential future improvements:
- use an arena (e.g.
bumpalo
) to create the vectors insideLinearCombination
s- while perfectly possible, it would require all
LinearCombination
objects to carry a reference, which would require a major refactoring - this would obviate [Perf] Use SmallVec in LinearCombination #2622
- while perfectly possible, it would require all
- use an arena to allocate the
Rc
objects- similar principle as 1, but not viable due to the
allocator_api
feature still being unstable; it might require less refactoring
- similar principle as 1, but not viable due to the
- while [Perf] Use SmallVec in LinearCombination #2622 is a solid improvement, a
singlevec
is slightly faster once [Perf] Simplify the R1CS > Assignment conversion #2621 and [Perf] Use SmallVec in LinearCombination #2622 are in, this suggestion has good potential for a further improvement and simplificationalready refactored away- tweaking the
Boolean
bit operations can result in a modest improvement; they were reverted from [Perf] Reduce allocations in basic circuit operations #2620 in order to reduce the diff
What hasn't worked:
- using a leaner
Arc
(in tandem with [Perf] Simplify the R1CS > Assignment conversion #2621) which doesn't handle weak pointers
Cc @vicsn
Metadata
Metadata
Assignees
Labels
No labels