Open k-macmillan opened 7 years ago
I see from your last post: "sc2_connection.cc gets held up pretty bad on the mutex lock in Receive()"
This means the library is waiting for the game to respond to a request. While going through the replays, it sends a "RequestReplayInfo" request to the game for each replay before calling your IgnoreReplay.
The one possible slow part of processing that request is the "download_data" field, which tells the game to download all the required data to play the replay before the request returns. It is possible there is some bug with that? This would be consistent with the problem not occurring on Linux, since that option doesn't work on Linux.
To test this theory, can you try going into "CoordinatorImp::ShouldIgnore" and change this line: r->ReplayControl()->GatherReplayInfo(file, true); To this: r->ReplayControl()->GatherReplayInfo(file, false);
Just tested it and this fixes it! Delay averages <300 microseconds prior to the first replay running, right in-line with after the first replay is played.
Replays take ~1 second to ignore with no criteria. I found that if you give it criteria and let the first one play, all subsequent replays are ignored at the same speed as Linux. There is something going on with that first replay that the Windows version makes it slow down. Takes 100 seconds to ignore the first 100 replays, after watching one replay it can ignore 100 replays in under 1 second.
Before the first replay begins Between first and second replay