Page MenuHomePhabricator

Logging increasingly disrupts list processing flow
Closed, ResolvedPublic

Description

When logging is enabled and the user is going through a long list, such as a list of articles from a WikiProject, the list processing gets progressively slower. After several thousand are processed, it runs at a snail's pace. I realize the 'clear' button can be used to make processing run at the fastest speed again, but if I was wanting to log all the information for later saving, this is problematic. When logging is disabled, list processing zips all the way through, more or less.

I suppose this can be seen as a performance "bug" or a feature request, but either way, I think it would do some good to make the routine that adds to the logs a threaded one.

My workaround is obviously to keep logging disabled unless I really need the logs.

Event Timeline

Stevietheman raised the priority of this task from to High.
Stevietheman updated the task description. (Show Details)

rev 11718 cuts the skip/save logging time in half

The time left is now mostly the time needed to resize the columns on the Logs tab; we do that each time an item is added or removed and it takes longer and longer as the number of items grows. Logically we only need to do that if an entry with the longest data in one of the columns has been added or removed, or perhaps if the Logs tabs doesn't have focus we could only refresh it when the user opens it. I'll investigate whether we can be smarter about the column resizing to improve the performance further.

I guess I jumped the gun on asking for this process to be threaded (not having looked at the code). If performance can be tweaked without doing that, all the better.

As for refreshing the logs tabs, that makes perfect sense that they wouldn't be refreshed unless they were currently open, or being opened. Otherwise, who is the refresh benefiting? All it's doing is dragging down the list processing.

I guess I jumped the gun on asking for this process to be threaded (not having looked at the code). If performance can be tweaked without doing that, all the better.

Probably should be done anyway, but be filed as a separate task

rev 11722 Further cut logging time nearly in half: cache size of logging list column heading widths to avoid recalculating each time entry is added

rev 11723 Further cut logging time (by a third to a half), avoid resizing columns with fixed-width content

Logging performance significantly improved, users already have the option to have logging turned off.