Hi all,
Why profiler is not readable for normal users?
Can’t it be designed much well for us to detect the leaks?
When I look at the profiler the only thing I saw is the picture below,
And I really really suffer from this situation because I am working on a mobile project and “Performance” is nearly the only handicap for me that I couldn’t pass…
Sorry to hear of your frustration. A working alternative would be to ask for assistance here before giving up.
This is an ask for help. “Please correct it and its mentality”
For the same reason code isn’t readable for ‘normal people’ and we don’t write games in English sentences. The profiler has a job to do. To do it well, it needs to present the data a certain way, which then requires the user to learn to read it. That’s just how software development goes.
What is it about the profiler that you aren’t understanding?
The documentation on the Profiler is a really good introduction and I recommend you read it, if you haven’t done so.
Specifically, it looks like you’re profiling in the editor. The documentation says:
and:
Ok.
But may I ask you something. What about a list over the profiler window which shows.
1- The render of this mesh takes long time than usual.
2- Running of this script takes long time than usual.
3- This animation takes 1/3 of all of your other animations.
I am trying to say "What about sniping the problematic game objects and telling it to us to solve whatever the problem with them and let us focus on the problem.
Except for individual meshes, the timeline view shows all this. Did you even try to click in that graph? That shows the timeline for that particular frame.
Yeah I did. But still can’t see the problems
I’d really love for Unity to improve the usability and readability of the Profiler and I’m sure they are trying to do so as well. They probably welcome constructive criticism of e.g. “here’s what I’m trying to figure out, the ways I attempted but failed and how I imagine it could be done better”, instead of only “I don’t understand any of this”.
What is “usual”? It highly depends on your project and the platform you’re running on and the Profiler can’t infer all the details for you.
E.g. for the CPU you can check the hierarchy view, sort by execution time and dig into which scripts take the most of your frame’s time. But scripts are often part of bigger systems and with multithreading thrown into the mix, it turns into a complicated picture that can’t be boiled down to a simple list.
For graphics, you have batching and instancing that can have a big impact on performance but aren’t tied to any specific game object but how your overall scene is set up. The timing data Unity can get from GPUs is also often only high-level, so it simply cannot tell you which shader is taking the most resources to render.
In short, performance is a complicated, often highly specific topic. Maybe Unity could add a profiler report that tries to identify common mistakes and alert you them. But beyond the most basic issues, you really need to take time to learn about performance, different platforms and how to use and interpret the profiler, there’s no simple solution for you – or for Unity.
What problems.
That seems unrealistic, kinda like asking Unity’s Debugger to show you which code is making players glitch through the scenery. Unity doesn’t know what you are trying to do with your content. It has no context to know if a mesh if taking a long time or not. So just like debugging a bug by understanding what you think your code should be doing and fine-tooth combing through it to find what it’s actually different and where it deviates, you need to learn how to work through the profiler to find the problem points.
In short, game development is Hard. If you have a specific issue, you can raise that issue to see if the community can help pin it down. Otherwise, you just need to put in the hours to learn how to use the tool, just like you have to learn how to use an Art Package or to write C# or integrate in some platform services.
Hello there,
I’m one of the Profiler devs and making it more accessible and usable is near and dear to me, even if that’s quite a broad front to work on.
As mentioned before, “un-usual” performance characteristics require the profiler to have more context to be able to come to that conclusion. Profile Analyser can show outliers in the histogram for the profiler markers and that could conceivably be one of the things brought back into the Profiler window eventually, but that would still require some reasoning on what things are important to analyze and then highlight in such a way.
An alternative angle on this would be to divide the frame time and memory into budgets and then somehow attribute different scripts & objects to the different budget categories. Then this budget forms the context for the profiler to use for focusing on what could be problematic.
But as mentioned before, attribution of single objects can be tricky to achieve. I’d love for us to have the kind of guidance you were looking for and am constantly looking for ways to slowly work ourselves towards that, but that’s still a long road ahead. We’ll need more broad and basic guidance first (am I CPU (main thread), GPU or Render thread bound? What area may I need to focus on in my memory usage?..) And add quite a bit of plumbing in the background to eventually solve the context and attribution problems. So you can expect baby-steps towards this but don’t expect a grand solution here in the near future (~next 2-4 years) unless we manage to pull of some kind of miracle.
Also, always happy to hear any feedback and ideas on how we can do better in terms of usability and guidance within the profiling tools
thanks. I think the problem was videos about it was “Unite now”. And I kinda don’t like them. Because they are not real tutorials they are kinda showcase.
Is there any detailed tutorial video which can teach me how to read it?
Maybe
Can provide a start? Also as mentioned before the documentation itself is intended to help getting into the tool and also links to these tutorials.
thanks