Taskwarrior 3.x.x is significantly slower than 2.x.x after migration: basic commands take >1 second per task creating major annoyances for me who uses taskwarrior every day. Removing rows from tasks did reduce the command time to 1/400.
I also created an index on operations as it was the largest table but that results in no performance difference. Before the prune I had 7573 rows in tasks and I think that is not an unusually high amount of tasks.
Every operation takes approx 1 second per task and is significantly slower than in the 2.x.x version:
This is that it looks like to run modify on ten tasks at the same time:
Details
task 3.4.2 built for Linux
cbulle@debian-trixie:~$ time task 3 modify wait:mon
Modifying task 3 'hidden'.
Modified 1 task.
TASKDATA override: /tmp/.task.backup
Project 'finance' is 95% complete (6 of 125 tasks remaining).
real 0m1.086s
user 0m1.069s
sys 0m0.017s
cbulle@debian-trixie:~$ time yes | task 10-20 modify wait:mon | ts
2026-06-27 06:34:35 This command will alter 11 tasks.
2026-06-27 06:34:35 - Wait will be changed from '9999-12-30' to '2026-06-29'.
2026-06-27 06:34:36 Modify task 10 'hidden'? (yes/no/all/quit) Modifying task 10 'hidden'.
2026-06-27 06:34:36
2026-06-27 06:34:36 - Wait will be changed from '2027-08-30' to '2026-06-29'.
2026-06-27 06:34:37 Modify task 11 'hidden'? (yes/no/all/quit) Modifying task 11 'hidden'.
2026-06-27 06:34:37
2026-06-27 06:34:37 - Wait will be changed from '9999-12-30' to '2026-06-29'.
2026-06-27 06:34:38 Modify task 12 'hidden'? (yes/no/all/quit) Modifying task 12 'hidden'.
2026-06-27 06:34:38
2026-06-27 06:34:38 - Wait will be changed from '9999-12-30' to '2026-06-29'.
2026-06-27 06:34:39 Modify task 13 'hidden'? (yes/no/all/quit) Modifying task 13 'hidden'.
2026-06-27 06:34:39
2026-06-27 06:34:39 - Wait will be changed from '9999-12-30' to '2026-06-29'.
2026-06-27 06:34:40 Modify task 14 'hidden'? (yes/no/all/quit) Modifying task 14 'hidden'.
2026-06-27 06:34:40
2026-06-27 06:34:40 - Wait will be changed from '2026-05-03' to '2026-06-29'.
2026-06-27 06:34:41 Modify task 15 'hidden'? (yes/no/all/quit) Modifying task 15 'hidden'.
2026-06-27 06:34:41
2026-06-27 06:34:41 - Wait will be changed from '2026-10-01' to '2026-06-29'.
2026-06-27 06:34:43 Modify task 16 'hidden'? (yes/no/all/quit) Modifying task 16 'hidden'.
2026-06-27 06:34:43 This is a recurring task. Do you want to modify all pending recurrences of this same task? (yes/no)
2026-06-27 06:34:43 - Wait will be changed from '2026-06-28' to '2026-06-29'.
2026-06-27 06:34:44 Modify task 17 'hidden'? (yes/no/all/quit) Modifying task 17 'hidden'.
2026-06-27 06:34:44
2026-06-27 06:34:44 - Wait will be changed from '2026-12-01' to '2026-06-29'.
2026-06-27 06:34:45 Modify task 18 'hidden'? (yes/no/all/quit) Modifying task 18 'hidden'.
2026-06-27 06:34:45
2026-06-27 06:34:45 - Wait will be changed from '2026-03-05' to '2026-06-29'.
2026-06-27 06:34:45 Modify task 19 'hidden'? (yes/no/all/quit) Modifying task 19 'hidden'.
2026-06-27 06:34:45
2026-06-27 06:34:45 - Wait will be changed from '2026-06-28' to '2026-06-29'.
TASKDATA override: /tmp/.task.backup
Warning: You have specified that the 'wait' date is after the 'due' date.
Project '40c3' is 0% complete (1 task remaining).
Project 'finance' is 95% complete (6 of 125 tasks remaining).
Project 'freunde' is 98% complete (2 of 105 tasks remaining).
Project 'haushalt' is 99% complete (2 of 650 tasks remaining).
Project 'health' is 99% complete (1 of 403 tasks remaining).
Project 'job' is 98% complete (1 of 59 tasks remaining).
Project 'partner' is 97% complete (5 of 219 tasks remaining).
Project 'sec' is 96% complete (1 of 32 tasks remaining).
Project 'self' is 99% complete (1 of 162 tasks remaining).
2026-06-27 06:34:46 Modify task 20 'hidden'? (yes/no/all/quit) Modifying task 20 'hidden'.
2026-06-27 06:34:46 Modified 11 tasks.
real 0m10.578s
user 0m10.555s
sys 0m0.053s
cbulle@debian-trixie:~$ time task stats
TASKDATA override: /tmp/.task.backup
Category Data
Pending 2
Waiting 32
Recurring 2
Completed 5555
Deleted 1982
Total 7573
Annotations 7953
Unique tags 11
Projects 232
Blocked tasks 0
Blocking tasks 0
Undo transactions 850
Sync backlog transactions 84285
Tasks tagged 31.6%
Oldest task 2019-02-24
Newest task 2026-06-26
Task used for 7.3y
Task added every 8h
Task completed every 11h
Task deleted every 1d
Average time pending 12d
Average desc length 47 characters
real 0m1.230s
user 0m1.194s
sys 0m0.036s
The v2 on the other hand was very snappy and quick given the (almost) same amount of items.
Taskwarrior v3 slower than v2 after upgrade / performance regression / migration to new version 3 causes slow operations / Performance issue post-migration slow per task / bulk commands extremely slow (but was slow in 2.x.x!) / ~1s delay for task commands / 3.0.0 new data format slowdown every task command is slower than before.
Taskwarrior 3.x.x is significantly slower than 2.x.x after migration: basic commands take >1 second per task creating major annoyances for me who uses taskwarrior every day. Removing rows from
tasksdid reduce the command time to 1/400.I also created an index on
operationsas it was the largest table but that results in no performance difference. Before the prune I had 7573 rows intasksand I think that is not an unusually high amount of tasks.Every operation takes approx 1 second per task and is significantly slower than in the 2.x.x version:
This is that it looks like to run modify on ten tasks at the same time:
Details
task 3.4.2 built for Linux
The v2 on the other hand was very snappy and quick given the (almost) same amount of items.
Taskwarrior v3 slower than v2 after upgrade / performance regression / migration to new version 3 causes slow operations / Performance issue post-migration slow per task / bulk commands extremely slow (but was slow in 2.x.x!) / ~1s delay for task commands / 3.0.0 new data format slowdown every task command is slower than before.