The macros LLM and LLM_IF_ENABLED behave identically but are slightly different from a performance standpoint. For consistency all allocs and frees should use the same one. Measure the cost of a cook on our large internal project and remove LLM_IF_ENABLED if it is not useful or convert all allocs and frees to LLM_IF_ENABLED if it is.
They behave identically because OnLowLevelFree and OnLowLevelAlloc, like all LLM functions (maybe a few exceptions) early exit if bIsDisabled.
LLM_IF_ENABLED was added in CL 4114133 as a performance improvement along with some other changes to bIsEnabled. Other things have changed since then so it's possible the LLM_IF_ENABLED macro is no longer useful for performance. The only reason it might be useful is to avoid the cost of the function call.
N/A - minor performance change only
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-200297 in the post.
0 |
Component | UE - Foundation - Core - Cooker |
---|---|
Target Fix | 5.4 |
Created | Nov 13, 2023 |
---|---|
Resolved | Jan 8, 2024 |
Updated | Jan 20, 2024 |