Question: Reduce CPU usage to 0 % in the background

142 views
Skip to first unread message

topforum

unread,
Feb 17, 2019, 10:34:32 AM2/17/19
to abstractspoon-t...@googlegroups.com
Hallo,

What does Todolist calculate permanently in the background?

No matter if one or more instances of Todolist are running in the background, there is a relatively high CPU usage all day long. 

What are the ways to reduce Todolist's CPU usage to 0% when the program is running in the background?

All calculations in the options have already been disabled because they are not needed.  All tabs have been closed except the tree view.

What else can I do?

To avoid misunderstandings - it is only about reducing the CPU load to zero, if the program is minimized in the background for a longer time (starting from approx. 15 minutes).

best regards

ToDoList_CPU-Auslastung_sshot-2019-02-11_00-43-58.jpg

ToDoList_CPU-Auslastung_sshot-2019-01-30_13-35-17.jpg


.dan.g.

unread,
Feb 17, 2019, 6:54:45 PM2/17/19
to ToDoList (AbstractSpoon) Support
Please attach a copy of your preferences (ini) file

.dan.g.

unread,
Feb 17, 2019, 8:00:26 PM2/17/19
to ToDoList (AbstractSpoon) Support
Hmm, this is what I see in Windows 10 as soon as I move my mouse away:

cpu_usage.PNG


One thing you could try is to use perfmon.exe to explore what TDL is doing for those CPU cycles.

If you do, can you save off the results and post them here please?


On Monday, 18 February 2019 02:34:32 UTC+11, topforum wrote:

topforum

unread,
Feb 17, 2019, 9:05:14 PM2/17/19
to ToDoList (AbstractSpoon) Support
Thank you very much, sir.

With Perform.exe I didn't really get along under Windows 8.1 yet.

Does the screenshot from the Process Explorer help you?
Todolist_Prozess_Explorer_sshot-2019-02-18_03-01-22.jpg

topforum

unread,
Feb 17, 2019, 9:25:45 PM2/17/19
to abstractspoon-t...@googlegroups.com
perfmon Datei

If the file is o.k. - or better a screenshot of the graphic?

ToDoList was minimized in the background during the entire recording.

edit: Procmon.exe Protokoll in short

.dan.g.

unread,
Feb 18, 2019, 7:41:13 PM2/18/19
to ToDoList (AbstractSpoon) Support
Sorry topforum, I made a mistake with my tool choice, I really meant to refer you to Process Monitor which will actually tell us what ToDoList was doing.

1. Download from here
2. Set it up to just monitor ToDoList.exe to reduce log file size (see image)
3. Make sure it's monitoring everything (buttons at right-hand end of toolbar)
4. Start/stop the monitoring using the magnifying glass icon at the left-hand end of the toolbar

Dan
proc_mon.PNG

topforum

unread,
Feb 19, 2019, 7:14:49 AM2/19/19
to abstractspoon-t...@googlegroups.com
If - as you can see on the screenshot - Todolist is in the background, then there are many actions, although the focus is not on Todolist.

For example, if monitoring is placed on Notepad, there are effectively no actions ( or very few ).

I can't explain why Todolist is so active although nothing is done in Todolist.

Do the data help you?

 edit (2)

An amazing observation under Windows 8.1. - 64

When I move the mouse over your software very quickly, the CPU load rises from 2.6% to over 12.5%. 

This doesn't happen with any other program I've tested. 

I'm curious to see if we can find out why the CPU load can increase so much just by moving the mouse. 

And especially, why the CPU load is so high if Todolist doesn't have the focus.

edit (3)

( 3 ) I have come across a third phenomenon. When the todolist is in the background, it seems to query the registry in an infinite loop for spoken settings. The more tdl files are open, the higher the load. I use the german version.

Please have a look at the three log files.
CPU_Auslastung_bei_Notepad_sshot-2019-02-19_12-57-24.jpg
CPU_Auslastung_bei_ToDoList_normaler_Fensterstatus_sshot-2019-02-19_13-02-10.jpg
Process Explorer ToDoList - 2019-02-19 - logfile.CSV
Process Explorer ToDoList - 2019-02-19 - 02 - Maus bewegt - logfile - 12 Prozent CPU Auslastung.CSV
Process Explorer ToDoList - 2019-02-19 - 02 - Registry - logfile.CSV

.dan.g.

unread,
Feb 19, 2019, 7:53:24 PM2/19/19
to ToDoList (AbstractSpoon) Support
Thx topforum.

>> I'm curious to see if we can find out why the CPU load can increase so much just by moving the mouse. 

It's just because ToDoList tries to provide a very dynamic experience and does a lot of work to achieve this as the mouse moves.

>> it seems to query the registry in an infinite loop for spoken settings. The more tdl files are open, the higher the load. I use the german version.

This related to formatting numbers in the local language. I can probably do something about this.

topforum

unread,
Feb 20, 2019, 8:26:14 AM2/20/19
to abstractspoon-t...@googlegroups.com
This is good news. I keep my fingers crossed for us. Yesterday I had a workload of 15.7% with eight small todo lists open in one instance. Todolist was minimized in the background and all evening there was a CPU usage of over 15%. ( 32 GB RAM, SkyLake CPU )

What is your e-mail address to which I can send the ini file?



.dan.g.

unread,
Feb 20, 2019, 11:08:24 PM2/20/19
to ToDoList (AbstractSpoon) Support

.dan.g.

unread,
Feb 21, 2019, 4:20:03 AM2/21/19
to ToDoList (AbstractSpoon) Support
Where is your R: drive physically located?


On Tuesday, 19 February 2019 23:14:49 UTC+11, topforum wrote:

topforum

unread,
Feb 22, 2019, 7:38:05 AM2/22/19
to ToDoList (AbstractSpoon) Support
The drive R is a Ramdisk. However, this has no influence on the CPU load up to 15.7%, because I also use it daily from the normal hard disk drive (no matter if SSD or magnetic hard disk) of LW C and D.

.dan.g.

unread,
Feb 23, 2019, 9:10:26 PM2/23/19
to ToDoList (AbstractSpoon) Support
I have made some small changes in 7.2.7 which might improve cpu usage.

If it doesn't improve, can you run 'ProcMon.exe' again and send me its log files please?


On Monday, 18 February 2019 02:34:32 UTC+11, topforum wrote:

.dan.g.

unread,
Feb 23, 2019, 9:15:05 PM2/23/19
to ToDoList (AbstractSpoon) Support
ps. Can you send me the whole log file which you created previously please?


On Monday, 18 February 2019 02:34:32 UTC+11, topforum wrote:

topforum

unread,
Feb 24, 2019, 5:19:43 AM2/24/19
to ToDoList (AbstractSpoon) Support
Hallo Dan,

(A)

Dan: "I have made some small changes in 7.2.7 which might improve cpu usage."

Version 7.2.7 is not available on the following website. Is there another website from where I can download the current version?



(B) 

Dan: "ps. Can you send me the whole log file which you created previously please?"

I've lost track of something, which log file do you mean? Since I have already sent the wrong log file several times, please link a short guide to exactly what you need.

A nice weekend and a good time :-)

.dan.g.

unread,
Feb 24, 2019, 6:19:49 PM2/24/19
to ToDoList (AbstractSpoon) Support

topforum

unread,
Feb 25, 2019, 4:24:48 AM2/25/19
to abstractspoon-t...@googlegroups.com

Hallo Dan, 

Many thanks for the new version. The CPU usage has been reduced - unfortunately it is still permanently above 4%. It still seems to be registry accesses while the program is in the background or minimized. I sent the log file by e-mail.

Is it a solution that the registry accesses only take place when the Todolist window has the focus?

Maybe I imagine the solution too simple - I was thinking of something like:

If window status ( Todolist , foreground / focus ) Then
... Registry queries
endif

.dan.g.

unread,
Feb 25, 2019, 5:15:46 AM2/25/19
to ToDoList (AbstractSpoon) Support
>> It still seems to be registry accesses while the program is in the background or minimized

Can you run ProcMon again please and send me the results?

ps. Did you reduce the size of your ini file as suggested?

topforum

unread,
Feb 25, 2019, 8:13:36 AM2/25/19
to abstractspoon-t...@googlegroups.com
I have sent an e-mail of the log file.

Problem: if I delete the settings for single TDL files via the command "'Tools > Cleanup Ini Preferences'", then I lose the settings. Is this correct?

I want to keep the settings for each file because each file is in use.
I use each of these files.

Todolist.ini currently has the following size "1547404".

At the moment it contains only about 60 tdl files. Since I have noticed that a TDL file reaches its limits when about 3000 records are contained, I have started to create a small TDL file with own settings etc. for each topic.

Hence my suggestion in one of the last e-mails to assign each TDL file its own ini file. In the same directory where the TDL file is located. Therefore it can be taken on a USB stick without any problems.

Name - whatever.tld
Name - whatever.ini

This would solve the problem with the size without losing the settings for the TDL files.

The problem with the file size of the Todolist.ini will get even worse, because I want to create up to 5800 TDL files, whose settings would all be moved to a Todolist.ini. Already with about 60 files the Todolist.ini has grown to over 1.5 MB.

If there is an ini file with the same name as the tdl file in the same directory, then use it. Otherwise use the Todolist.ini.

With Todolist you can structure thoughts and themes very well. There are many things in this world and the content of the Todo lists is correspondingly broad. I know of no better tool than this tree view in Todolist to present structures in a clear and understandable way. Hence the suggestion to create a separate ini file for each TDL file. Optional for those users who want to create many TDL files, because it is very useful for them. 




.dan.g.

unread,
Feb 25, 2019, 8:25:04 PM2/25/19
to ToDoList (AbstractSpoon) Support
>> because I want to create up to 5800 TDL files

Then you need to find another solution because my software will not work for you.

>> If there is an ini file with the same name as the tdl file in the same directory, then use it. Otherwise use the Todolist.ini.

ToDoList already supports this, but it will open a separate instance for each tasklist.

.dan.g.

unread,
Feb 25, 2019, 8:34:27 PM2/25/19
to ToDoList (AbstractSpoon) Support
>> Problem: if I delete the settings for single TDL files

Take a copy of the ini before performing the experiment. I just want to see what effect it will have.


On Tuesday, 26 February 2019 00:13:36 UTC+11, topforum wrote:

topforum

unread,
Feb 26, 2019, 7:05:48 AM2/26/19
to abstractspoon-t...@googlegroups.com

Button: select all

I'll be happy to try that out for you. Do you like to add the buttons as in the screenshot, "select all", so that 60 TDL files do not have to be selected by hand?


Button: Export Program Settings

Here's a good idea.

Many users have special settings for the main program.

It would be very helpful if there were a button on this interface to export all user-defined settings without the settings for the respective TDL files.

In principle, this is identical to deleting all user-defined settings in Todolist.ini.
Todoliste_ini_Datei_bereinigen_Button_alles_auswaehlen_sshot-2019-02-25_14-10-22.jpg

topforum

unread,
Feb 26, 2019, 7:24:22 AM2/26/19
to abstractspoon-t...@googlegroups.com
edit: delete - new infos later

topforum

unread,
Feb 26, 2019, 8:09:29 AM2/26/19
to ToDoList (AbstractSpoon) Support

You gave me an idea - tested the overtime.

I'm afraid it's not good news.

Instead of reducing the ini file, I created an empty file.

I started the empty file with an empty ini file.

After the start I asked for the language setting, which I set to German.

More I did not change.

Both instances are currently running in the background and have the same CPU usage at 2% for several hours.

In both instances a file is open. In one instance there is a file with 3800 entries and a 1.5 MB ini file. In the other instance an empty file is opened with one entry and an ini file containing only the default entries. The ini file is 252 kb in size.

Conclusion: the size of the ini file has no influence on the CPU load.

PS: In passing, it would still be interesting to export Todolist's default settings without the settings for the respective TDL files. 

Maybe it would be already a first step as shown in the screenshot above, that you can automatically select all entries for the INI files, so that at the bottom line only the user-defined default settings Todolist maintains remain.

Target: all user-defined settings for the program Todolist ( without the settings for the individual TDL files ).

topforum

unread,
Feb 26, 2019, 8:27:17 AM2/26/19
to ToDoList (AbstractSpoon) Support


The CPU load is independent of the language settings - no matter if English or German etc..

Even with an effectively empty ini file and an effectively empty TDL file, there is the following endless loop in the process monitor. The following lines are run through endlessly again and again.

This seems to be a good approach - can you stop these queries when the program is in the background?

What do these queries mean?

These same lines appear again and again for hours in the process monitor.

14:22:57,5230185 ToDoList.exe 10588 QueryOpen R:\leer.tdl SUCCESS CreationTime: 26.02.2019 13:56:30, LastAccessTime: 26.02.2019 13:56:30, LastWriteTime: 24.09.2018 19:15:16, ChangeTime: 26.02.2019 13:56:43, AllocationSize: 4.096, EndOfFile: 1.760, FileAttributes: A
14:22:58,5245045 ToDoList.exe 10588 QueryOpen R:\leer.tdl SUCCESS CreationTime: 26.02.2019 13:56:30, LastAccessTime: 26.02.2019 13:56:30, LastWriteTime: 24.09.2018 19:15:16, ChangeTime: 26.02.2019 13:56:43, AllocationSize: 4.096, EndOfFile: 1.760, FileAttributes: A
14:22:59,5231946 ToDoList.exe 10588 QueryOpen R:\leer.tdl SUCCESS CreationTime: 26.02.2019 13:56:30, LastAccessTime: 26.02.2019 13:56:30, LastWriteTime: 24.09.2018 19:15:16, ChangeTime: 26.02.2019 13:56:43, AllocationSize: 4.096, EndOfFile: 1.760, FileAttributes: A
14:23:00,5228372 ToDoList.exe 10588 QueryOpen R:\leer.tdl SUCCESS CreationTime: 26.02.2019 13:56:30, LastAccessTime: 26.02.2019 13:56:30, LastWriteTime: 24.09.2018 19:15:16, ChangeTime: 26.02.2019 13:56:43, AllocationSize: 4.096, EndOfFile: 1.760, FileAttributes: A
14:23:01,5234853 ToDoList.exe 10588 QueryOpen R:\leer.tdl SUCCESS CreationTime: 26.02.2019 13:56:30, LastAccessTime: 26.02.2019 13:56:30, LastWriteTime: 24.09.2018 19:15:16, ChangeTime: 26.02.2019 13:56:43, AllocationSize: 4.096, EndOfFile: 1.760, FileAttributes: A
14:23:02,5243499 ToDoList.exe 10588 QueryOpen R:\leer.tdl SUCCESS CreationTime: 26.02.2019 13:56:30, LastAccessTime: 26.02.2019 13:56:30, LastWriteTime: 24.09.2018 19:15:16, ChangeTime: 26.02.2019 13:56:43, AllocationSize: 4.096, EndOfFile: 1.760, FileAttributes: A
14:23:03,5237937 ToDoList.exe 10588 QueryOpen R:\leer.tdl SUCCESS CreationTime: 26.02.2019 13:56:30, LastAccessTime: 26.02.2019 13:56:30, LastWriteTime: 24.09.2018 19:15:16, ChangeTime: 26.02.2019 13:56:43, AllocationSize: 4.096, EndOfFile: 1.760, FileAttributes: A
14:23:04,5244805 ToDoList.exe 10588 QueryOpen R:\leer.tdl SUCCESS CreationTime: 26.02.2019 13:56:30, LastAccessTime: 26.02.2019 13:56:30, LastWriteTime: 24.09.2018 19:15:16, ChangeTime: 26.02.2019 13:56:43, AllocationSize: 4.096, EndOfFile: 1.760, FileAttributes: A
14:23:05,5391263 ToDoList.exe 10588 QueryOpen R:\leer.tdl SUCCESS CreationTime: 26.02.2019 13:56:30, LastAccessTime: 26.02.2019 13:56:30, LastWriteTime: 24.09.2018 19:15:16, ChangeTime: 26.02.2019 13:56:43, AllocationSize: 4.096, EndOfFile: 1.760, FileAttributes: A
14:23:06,5237656 ToDoList.exe 10588 QueryOpen R:\leer.tdl SUCCESS CreationTime: 26.02.2019 13:56:30, LastAccessTime: 26.02.2019 13:56:30, LastWriteTime: 24.09.2018 19:15:16, ChangeTime: 26.02.2019 13:56:43, AllocationSize: 4.096, EndOfFile: 1.760, FileAttributes: A
14:23:06,7021993 ToDoList.exe 10588 Thread Exit SUCCESS Thread ID: 9244, User Time: 0.0000000, Kernel Time: 0.0000000
14:23:07,5250678 ToDoList.exe 10588 QueryOpen R:\leer.tdl SUCCESS CreationTime: 26.02.2019 13:56:30, LastAccessTime: 26.02.2019 13:56:30, LastWriteTime: 24.09.2018 19:15:16, ChangeTime: 26.02.2019 13:56:43, AllocationSize: 4.096, EndOfFile: 1.760, FileAttributes: A
14:23:07,5250898 ToDoList.exe 10588 CreateFile R:\ SUCCESS Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
14:23:07,5251072 ToDoList.exe 10588 QueryDirectory R:\leer.tdl SUCCESS Filter: leer.tdl, 1: leer.tdl
14:23:07,5251235 ToDoList.exe 10588 QueryDirectory R:\ NO MORE FILES

topforum

unread,
Feb 27, 2019, 5:14:32 AM2/27/19
to abstractspoon-t...@googlegroups.com
Short Supplement - The PC ran through the night for this test

With 6 open files with 1 record each, the CPU utilization already increases on average to approx. 11.6 %

It really seems that every open file (even in the same instance of Todolist) increases the CPU load by an average of 2%.

Good luck. :-)

PS: Do you have PC with Windows 8.1 / 64 to test the phenomenon ( or vmware) ? We have been able to reproduce this here at friends and acquaintances on 14 computers.


.dan.g.

unread,
Feb 27, 2019, 6:23:52 PM2/27/19
to ToDoList (AbstractSpoon) Support
>> can you stop these queries when the program is in the background?

I'll see what I can do.

.dan.g.

unread,
Feb 27, 2019, 7:45:19 PM2/27/19
to ToDoList (AbstractSpoon) Support
ps. You can also try turning off file checking:

Tools > Preferences > Multiple Users > If a tasklist's status changes to writable:
Tools > Preferences > Multiple Users > If a tasklist's timestamp changes:

On Wednesday, 27 February 2019 21:14:32 UTC+11, topforum wrote:

.dan.g.

unread,
Feb 27, 2019, 8:06:25 PM2/27/19
to ToDoList (AbstractSpoon) Support
>> can you stop these queries when the program is in the background?

Have you tried simply minimising the app?

topforum

unread,
Feb 28, 2019, 1:29:06 PM2/28/19
to abstractspoon-t...@googlegroups.com

I have tested with every new version and with every changed setting whether there is a difference between ( A ) in the foreground, ( B ) in the background, ( C ) minimized. There is effectively no difference. 

The CPU load remains unchanged. It does not matter if Todolist is inactive in the background or if the window is minimized. Every open file in the same instance increases the CPU load.

Hence also my suggestion that the queries be stopped in minimized state respectively when the program is in the background. The settings for multiple users are disabled. Todolist is run on a single PC without any active computers in the network.

Many thanks for the tireless work and help :-)

I'm sure we'll find a solution!
Reply all
Reply to author
Forward
0 new messages