Blazing fast, silky smooth, positive adjectives performance when opening the check online content window
Actual result
Frame rate decreases dramatically when the list is being populated.
The performance problem seems to be created in ClientNetworkContentSocketHandler::ReverseLookupDependency via ClientNetworkContentSocketHandler::CheckDependencyState.
This seems to be because each received content item calls CheckDependencyState on each previously received item, which calls ReverseLookupDependency which again iterates all previously received items, leading overall to O(N^3) behaviour in the number of content items. See below for approximate measurements.
Steps to reproduce
Open the "Check Online Content" window from the main menu (not when in a game).
The text was updated successfully, but these errors were encountered:
JGRennison commentedSep 3, 2021
Version of OpenTTD
master (9c74dc2), however this is not a new bug
Expected result
Blazing fast, silky smooth, positive adjectives performance when opening the check online content window
Actual result
Frame rate decreases dramatically when the list is being populated.

The performance problem seems to be created in

ClientNetworkContentSocketHandler::ReverseLookupDependency
viaClientNetworkContentSocketHandler::CheckDependencyState
.This seems to be because each received content item calls
CheckDependencyState
on each previously received item, which callsReverseLookupDependency
which again iterates all previously received items, leading overall to O(N^3) behaviour in the number of content items. See below for approximate measurements.Steps to reproduce
The text was updated successfully, but these errors were encountered: