When you are running your game, hit the tilde key, ~. This opens the console if you have it enabled.
Within you can type a variety of commands, one set of which is Stat XXXX where XXXX is some part of the engine, like ‘stat gpu’, ‘stat unit’, or ‘stat unitgraph’.
What I pasted was this stuff:
I bound the press of a key to run the commands to turn stat menus on and the release to run them again and turn them off, so i can press-hold a key to get whatever info I set into the command. You can make them yourself in your project if you want. The important part are the stat-commands themselves. Based on what you are using you might want one or more of them, but there are some general ones you want to get used to:
Stats example
You can see here Stat GPU gives me timing on how long nanite took to sort itself (Nanite VisBuffer, the volumetric clouds, volumetric-fog, etc, etc. There are MANY menus, just type stat and use arrows to scroll through the autocomplete. The STAT menus should be listed in a distinct color.
At some point you are going to have to look into what effort is being spent where, outside a material. Benchmarking from a material is great and all, but there are other things it may have the engine do base on it’s LOD, is it on nanite, what shader-model you are using, etc. Thus knowing how to dig into performance metrics is very handy. There is also the Unreal Timing Insights tool: Timing Insights in Unreal Engine 5 | Unreal Engine 5.5 Documentation | Epic Developer Community
EDIT: as far as the do-not-use-landscape-blarg-blah-hate it was MostHostLA (lol). he was actually the first person to ever reply to my first post (and the effort was totally crap). but therein he suggested sidestepping the layer-logic, and I did, never looked back. As far as the perf boost it was decent at the time 15-20 fps based on how I was making things, but I haven’t gone back to test.
I moved away from using extant-painted layers as much as possible and I bake alphas to static textures, using either a texture-array or UDIM setup to section them off across the landscape. You can also use Runtime Virtual Textures as an information-sink, they work pretty performantly. I tried using them both as PBR information and Alpha information, but ultimately with nanite, chucked them aside as I came out ahead without them.

