Second optimization to a heavily hit function that uses an FArchiveFromStructuredArchive adapter. That class needs optimization, so temporarily use a straight FArchive path when text archive support is compiled out
fyi ben.woodhouse, gil.gribb, per.larsson
#ROBOMERGE-SOURCE: CL 5716883 via CL 5716884 via CL 5716885 via CL 5716886 via CL 5717811
[CL 5717889 by graeme thornton in Main branch]
#ROBOMERGE-OWNER: daniel.lamb
#ROBOMERGE-AUTHOR: daniel.lamb
#ROBOMERGE-SOURCE: CL 5558994 via CL 5559027 via CL 5560253
#rb Andrew.Grant
[CL 5561251 by daniel lamb in Main branch]
Integrate all cook -iterate optimizations from //UE4/Dev-core/...
Test Scenario:
1) BuildCookStageAndRun with these arguments: -platform=Win64 -configuration=Development
2) CookIterate with these arguments: -run=Cook -CookCultures=en -TargetPlatform=WindowsClient -unversioned -stdout -unattended -iterate
Wall Time Results (as an average of running step 2) two times):
Before: ~09:40 (580 seconds) cook commandlet time
After: ~02:30 (150 seconds) cook commandlet time
=> 07:10 (430 seconds ) faster, i.e. a ~ 3.9x speedup
Win32 FileSystem Results:
Before: 1.5 million GetFileAttribute calls and 1.2 million FindNextFile calls
After: 35 0000 GetFileAttribute calls and 1.6 million FindNextFile calls
=> ~400 000 calls to FindNextFile replaces ~1.5 million calls to GetFileAttribute
#rb none
#ROBOMERGE-SOURCE: CL 5533504 via CL 5533655
[CL 5536177 by pj kack in Main branch]
#rb Robert.Manuszewski
#jira UE-70904
#lockdown Cristina.Riveron
#ROBOMERGE-SOURCE: CL 5497598 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5497599 by dan oconnor in Main branch]
#rb robert.manuszewski
#jira UE-71566
#ROBOMERGE-SOURCE: CL 5415461 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5415463 by steve robb in Main branch]
#rb none
#jira UE-69177
#ROBOMERGE-SOURCE: CL 5402557 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5402563 by robert manuszewski in Main branch]
#rb none
#jira UE-69177
#ROBOMERGE-SOURCE: CL 5401696 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5401697 by robert manuszewski in Main branch]
If a container element is overridden on an instance, then the entire container is serialized into the instance with different keys than the archetype. This means that all elements of a container need to be gathered if any elements within the container have changed.
#jira UE-71447
#rb Francis.Hurteau
#rnx
#ROBOMERGE-SOURCE: CL 5371132 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5371133 by jamie dale in Main branch]
#rb none
#jira UE-71333
#ROBOMERGE-SOURCE: CL 5368203 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5369004 by robert manuszewski in Main branch]
#rb none
#jira UE-71333
#ROBOMERGE-SOURCE: CL 5368036 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5369001 by robert manuszewski in Main branch]
[FYI] Steve.Robb
#jira UE-71404
#rb none
#ROBOMERGE-SOURCE: CL 5365414 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5368510 by ben marsh in Main branch]