Script Profiling – Arma Reforger

From Bohemia Interactive Community
Revision as of 20:20, 12 December 2022 by Lou Montana (talk | contribs) (Page creation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Script Profiling allows to profile script performance while it is running.


In-Game Profiler

Enable the in-game profiler from the Diag Menu > Statistics > Script Profiler - the value can be set to frame or continuous.


External Profiler

Allow an external profiler by either:

In the profiler tool look for the "Scr::" prefix, or expand "#Main thread" in the stack view.


Memory Allocation

It is possible to dump all allocations from script:

  • Run the game with the -checkInstance startup parameter
  • Call the following from script: DumpInstances(/* bool csvFormatting = */ true);
  • This outputs memory allocations in the logs to the CSV format
    ==== Script allocations (script side) ====
    count,class,file,line,method
    144,array<@AnimSoundEvent>,scripts/3_Game/InventoryItemType.c,16,LoadSoundEvents
    1,ActionEatTetracyclineAntibiotics,scripts/4_World/Classes/UserActionsComponent/ActionConstructor.c,123,ConstructActions
    1,Wetness,scripts/4_World/Classes/PlayerNotifiers/NotifiersManager.c,19,NotifiersManager
    55,map<string,@WidgetCacheObject>,scripts/5_Mission/GUI/WidgetCacheObject.c,16,WidgetCacheObject
    1,Param1<int>,scripts/3_Game/tools/UtilityClasses.c,24,Init
    1,CraftGhillieTop,Scripts/4_World/Classes/Recipes/Recipes/_RecipeList.inc,11,CreateAllRecipes
    1,array<@Param>,scripts/4_World/Plugins/PluginBase/PluginItemDiagnostic.c,23,PluginItemDiagnostic
    861,array<SoundObjectBuilder>,scripts/3_Game/DayZAnimEventMaps.c,34,LoadTable