Is there a way to find out how "heavy" a blueprint is?

Not sure how to describe it, I want to find out how much load does a blueprint have on the CPU and GPU, perhaps in some sort of metrics that I can understand so that I can try and find what blueprints are most heavy and try optimizing them. Anything of the sort that could help me with this?

Your request is very vague. I don’t mean that as a criticism, I’m just not sure where to start.

A blueprint, by itself, is nothing more than a set of local instructions for a group or individual. It’s a self-contained function.

So, if the meshes that a blueprint uses are expensive, then I guess that blueprint is expensive?

But not really.

Blueprints aren’t objects. They’re assemblies.

Think of a blueprint like a recipe, and the functions/assets within it are the ingredients. The recipe instructs you how to use the ingredients, but the ingredients are what cost money and take up space.

You can use a Blueprint to help optimize your project, but, again, it’s what’s IN the blueprint that matters.

An exception would be tick functions. They can be VERY expensive.

So, if you have blueprints with tons of tick functions, get used to setting up code that will turn them on and off.

1 Like

You’re right, my question is indeed quite vague. I’ll try to be a bit more precise. Recently I tried RenderDoc to profile my CPU processes and it was able to pinpoint which functions were causing the most latency in draw calls. But it was quite nitty gritty. I’ve been looking for a more “This blueprint causes an x amount of latency on the game thread” kind of solution so that I don’t have to go around targeting specific functions from a multitude of blueprints and be able to instead of a sort of ranking between blueprints in general. So a character blueprint with lots of features and skeletal meshes would rank higher than an empty actor BP. idk if there is something of that sort for someone as simple minded as me

1 Like

Oooh, that makes more sense to me.

I optimize as I go along. You may need to just roll up your sleeves and cull what is not needed.

I’ll be tracking this thread, because there may be a trick/function I’m unaware of.

1 Like

Yes I’ve been doing the same. I just wondered if there was a simpler method. Perhaps someone will eventually come up with a solution for this. RenderDoc is the simplest profiler I found and it’s still quite intricate.

1 Like
  1. The simplest one, you can use the node: Start Profiling Timer and End Profiling Timer, just be aware if you using any latent node in between. It does the job quick but in some cases session frontend might be better.

  2. Session Frontend, you can search your function or bp like the screenshot below, ExecGraph usually mean the whole bp execution line, you can double click on it and see for any spike on the graph.

  3. For memory, you can use Size Map when you right click on your asset bp in your asset browser. You need to switch from Disk Size to Memory Size to kinda force everything to be loaded in memory and get the correct value.

2 Likes

Isn’t Unreal Insights, used now?

2 Likes

which ever you feel most comfortable, i only posted for things that am experience and i haven’t used unreal insight yet. but is sure is something to dig in.

WTF?

I had no idea you could even do this. I usually use the profiler and insights. Interesting!

1 Like

Thanks! These tools look good! I’ll have a look through these!

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.