I have a script that computes how long I've been doing a contiguous interval (of different tasks). I have this bound to a key in my window manager to display a total, so I can see "how long since my last break?" It goes back looking at dom.tracked.N.start and .end until it finds a break. Then it does a sum of dom.tracked.{1..<break>}.duration.
This (and several other scripts I have) are now taking much longer with 1.9.0, here seen with just the last 10 intervals:
$ for binary in timew1{8,9}0
do echo $binary:; time -p $binary get \
dom.tracked.{1..10}.{start,end,duration} \
>/dev/null; echo; done
timew180:
real 0.89
user 0.85
sys 0.01
timew190:
real 8.14
user 2.97
sys 5.13
Yikes... 4x user time and 513x increase in kernel time! These were built with CMAKE_BUILD_TYPE=relwithdebinfo build flags which appear to be -g -O2 -DNDEBUG.
I'm frequently switching tasks through key-bound actions and menus, and getting sums for day, week, certain tags, etc and while in some cases I'm computing this myself from an export, in other cases I'm relying on the DOM access calculations. So, this has quite a deleterious/laggy effect on workflow...
Looks like the problem is I/O changes, here syscall time for above commands, anything over 1%:
180:
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
20.05 0.000230 0 267 2 access
19.09 0.000219 1 189 36 newfstatat
16.04 0.000184 1 176 read
15.17 0.000174 4 40 fdatasync
9.33 0.000107 0 134 44 openat
6.54 0.000075 0 90 close
6.54 0.000075 15 5 munmap
2.62 0.000030 1 30 brk
2.35 0.000027 6 4 getdents64
1.31 0.000015 0 26 mmap
190:
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
36.51 5.648562 1 3341889 36 newfstatat
23.04 3.564769 1 2227976 read
19.09 2.953615 2 1114034 44 openat
11.79 1.823148 1 1113990 close
9.55 1.477241 1 1113901 lseek
Amazing, millions of I/Os in the new DOM code! I think it's a bug ;-)
I have a script that computes how long I've been doing a contiguous interval (of different tasks). I have this bound to a key in my window manager to display a total, so I can see "how long since my last break?" It goes back looking at
dom.tracked.N.startand.enduntil it finds a break. Then it does a sum ofdom.tracked.{1..<break>}.duration.This (and several other scripts I have) are now taking much longer with 1.9.0, here seen with just the last 10 intervals:
Yikes... 4x user time and 513x increase in kernel time! These were built with
CMAKE_BUILD_TYPE=relwithdebinfobuild flags which appear to be-g -O2 -DNDEBUG.I'm frequently switching tasks through key-bound actions and menus, and getting sums for day, week, certain tags, etc and while in some cases I'm computing this myself from an export, in other cases I'm relying on the DOM access calculations. So, this has quite a deleterious/laggy effect on workflow...
Looks like the problem is I/O changes, here syscall time for above commands, anything over 1%:
Amazing, millions of I/Os in the new DOM code! I think it's a bug ;-)