I've been using tutor for my deployments since Open edX's maple release, and over 6 months as a development environment.
One of the yet-to-be-solved DevExp issues I've faced is the slowness of the shell autocomplete feature.
Here is my experience with testing a basic tutor [tab][tab] in bash.
When I was using my late (:cry:) not-so-strong ubuntu machine [4G CPU / 16GB DDR3L / SSD]: response time was over 3s before the available commands are completed.
When I try the same with my ubuntu work machine [7G CPU / 16GB DDR4 / SSD], I get an initial response time around 1s second, subsequent [tab] have around 0.4s response time (which is quite acceptable but not applicable to less powerful machines).
Tasks
A suggested roadmap:
Find at least one method to profile a tutor CLI autocomplete response time.
Profile response times of a vanilla Tutor CLI (no enabled plugins) autocomplete.
Profile response time of a Tutor CLI with additional plugins and note any overheads.
Profile performance of tutor installed from pypi.org (pip install tutor) vs tutor installed in editable mode (pip install -e git+<tutor-gh-repo>)
Experiment with potential solutions to improve a click CLI performance, and come out with tested recommendations.
Apply recommendations on tutor core and on any plugins providing CLI extensions.
Add CLI performance recommendations to Tutor's plugin development documenation.
Maybe add tests to tutor to ensure an acceptable response time criteria is met.
Notes
This article about Improving the performance of a slow click CLI
claims that larger python module imports is one potential bottleneck, and suggests to either move imports inside the command logic, or better to completely separate execution logic from CLI logic.
Background
I've been using tutor for my deployments since Open edX's maple release, and over 6 months as a development environment. One of the yet-to-be-solved DevExp issues I've faced is the slowness of the shell autocomplete feature.
Here is my experience with testing a basic
tutor [tab][tab]
in bash.late (:cry:) not-so-strongubuntu machine [4G CPU / 16GB DDR3L / SSD]: response time was over 3s before the available commands are completed.[tab]
have around 0.4s response time (which is quite acceptable but not applicable to less powerful machines).Tasks
A suggested roadmap:
pip install tutor
) vs tutor installed in editable mode (pip install -e git+<tutor-gh-repo>
)Notes
FYI @regisb