Taskwarrior Performance Testing
The performance charts are generated using Google Charts, and represent the results from running make performance
for a release build.
All times shown are microseconds (μs).
The average human eye blink takes 350,000 μs.
The data used is the text of all the Shakespeare tragedies, with data manipulation that turns every spoken line into a task. The result is a sample data set that includes 2,129 pending tasks and 5,957 completed tasks. This yields an 8,086 task database. This data is then queried twice to warm any caches.
The tests are all run on the same hardware, OS, and under similar load. Because of this, any OS upgrade or new hardware requires all tests to be re-run, and sometimes this is not possible because of toolchain differences. It is expected that there will be minor variations between tests.
Note: The ‘other’ category was introduced with 2.5.0 and represents the total runtime (launch to exit, measured internally), with all the other categories subtracted.
It therefore represents unmeasured time.
In the case of export
and import
, the ‘other’ category is significant.
With 2.5.0.beta3 the time spent converting tasks to JSON is counted as ‘render’ time.
All Tests Combined
Aggregated time (in seconds) for all 20 tests, by version. This total is measured externally, and therefore includes unmeasured time, and launch time.
task next
This test yields only the pending tasks.
This test is sensitive to changes in the next
report definition.
task list
This test yields only the pending tasks.
This test is sensitive to changes in the list
report definition.
task all
This test yields all pending and completed tasks.
This test is sensitive to changes in the all
report definition.
task add
This test adds a task with project, priority, tags and an average-sized description.
task export
This test exports all 8,086 tasks to a JSON file. Starting with task-2.5.0.beta3, time spent composing JSON is measured as ‘render’ time.
task import
This test imports all 8,086 tasks from a JSON file. The ‘other’ category represents mostly JSON parsing.