Monitor load order and load times of lister plugins
Posted: 2021-07-01, 07:15 UTC
Hello,
since we are currently discussing a lot about lister plugins (manual/automatic selection, etc.), there is one more feature that might be very helpful to debug and optimize the overall plugin configuration in TC:
When loading a file in lister/QV, several plugins might be tried until a working one is found. This leads to (avoidable) delays and in some cases TC even hangs/crashes if one of the plugins hangs/crashes. In both cases, it is difficult to see which plugin caused which delay or even the erroneous one. Thus, I recommend to capture the order in which the plugins were tried along with how much time was used by each plugin. This (and some more) information could be viewed in a simple table (accessible through the context menu or as a new entry in the Options menu).
Example:
In this example, 6 plugins will be tried cyclically for a file to be viewed. On initially opening lister/QV, plugin3 is the first that succeeds after 20+30+10=60ms. After pressing '4', plugin5 succeeds after 30+20=50ms. Pressing '4' again cycles over and plugin3 succeeds again after 78ms. This way, the list grows whenever '4' is pressed.
From the list, users and plugin developers can easily see for different files to be viewed:
And, I understand that implementing the table means some effort for Mr. Ghisler.
Therefore, some of the information could at least be added to the log files. E.g., "trying to use <plugin> on <file>" as the last log entry would clearly indicate which plugin has crashed TC.
BTW: Such log entries would also be useful for other plugin types (sometimes I encounter crashes when entering archives through packer plugins. Then, I never know which plugin has caused the crash.
What do you think?
BR
funkymonk
since we are currently discussing a lot about lister plugins (manual/automatic selection, etc.), there is one more feature that might be very helpful to debug and optimize the overall plugin configuration in TC:
When loading a file in lister/QV, several plugins might be tried until a working one is found. This leads to (avoidable) delays and in some cases TC even hangs/crashes if one of the plugins hangs/crashes. In both cases, it is difficult to see which plugin caused which delay or even the erroneous one. Thus, I recommend to capture the order in which the plugins were tried along with how much time was used by each plugin. This (and some more) information could be viewed in a simple table (accessible through the context menu or as a new entry in the Options menu).
Example:
Code: Select all
plugin duration success totalLoadTime detectString <more information>
plugin1 20ms - ...
plugin2 30ms - ...
plugin3 10ms YES 60ms ...
plugin4 30ms - ...
plugin5 20ms YES 50ms ...
plugin6 10ms - ...
plugin1 22ms - ...
plugin2 31ms - ...
plugin3 15ms YES 78ms ...
From the list, users and plugin developers can easily see for different files to be viewed:
- plugin performance including load time jitter,
- problems with certain plugins,
- optimization potential for the TC plugin configuration (detect strings, order in "View by file type", etc.).
And, I understand that implementing the table means some effort for Mr. Ghisler.
Therefore, some of the information could at least be added to the log files. E.g., "trying to use <plugin> on <file>" as the last log entry would clearly indicate which plugin has crashed TC.
BTW: Such log entries would also be useful for other plugin types (sometimes I encounter crashes when entering archives through packer plugins. Then, I never know which plugin has caused the crash.
What do you think?
BR
funkymonk