Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Does Obi 4.1 have better performance than Obi 5.1?
#1
After I moved my project from Obi 4.1 to Obi 5.1 I noticed performance issues. So I made some performance tests with example scene "Benchmark" in Obi assets. I set up same settings ("Time" in project settings too) and I saw that Obi 4.1 is faster in 1.6-1.9 times than obi 5.1.

Here are some photos:
(Obi 5.1 / Obi 4.1 )
       

(Obi 5.1 / Obi 4.1 )
   

( Obi 4.1 )
   

(Obi 5.1)
   
Reply
#2
(18-02-2020, 04:31 PM)IlyaZzz Wrote: After I moved my project from Obi 4.1 to Obi 5.1 I noticed performance issues. So I made some performance tests with example scene "Benchmark" in Obi assets. I set up same settings ("Time" in project settings too) and I saw that Obi 4.1 is faster in 1.6-1.9 times than obi 5.1.

Here are some photos:
(Obi 5.1 / Obi 4.1 )


(Obi 5.1 / Obi 4.1 )


( Obi 4.1 )


(Obi 5.1)

Hi,

Simulation performance is generally better, since 5.X has more granular parallelism. It can however vary from scene to scene, and device to device, since the cost of job dispatching and thread management can sometimes add up.

Interpreting your profiler pics: Note that while 4.X performs both substeps internally in the engine (2 substeps take 14.65 ms), 5.X calls each substep individually (1 substep takes 7 ms, so 2 substeps take 14 ms). 14 < 14.65, so 5.X simulation is sliiiightly faster. However it seems that FixedUpdate() is being called twice per frame in your 5.X scene, that would indicate a mild case of death spiraling.

Also, Obi 5.X implements "small steps", which is a technique in which collision detection is calculated once per step and amortized over all substeps. This allows you to perform many more substeps than in 4.X, so the quality/performance ratio of 5.X is much higher than 4.X's (since in 4.X, each substep also has to perform full collision detection). If you're curious about this technique, you can read the article where it is described here: http://mmacklin.com/smallsteps.pdf

Rendering performance in 5.X is slightly lower than in 4.X (in your profiler, 4.X renders in 2ms, while 5.X takes 3ms), since we moved most of it from C++ to C# in preparation to the Burst port. The slightly slower rendering and slightly faster simulation compensate each other. In the near future, we expect both simulation and rendering to be faster.

The total times for a step, according to your profiler, are:
Obi 5.X: 17.56 ms
Obi 4.X: 16.63 ms.

So in this particular scene in your device, 5.X is 17.56/16.63 = 5.4% slower, not 1.9 times slower. Note you're measuring 2 steps in 5.X vs 1 step in 4.X, that's where you're 1.6-1.9 estimation comes from.
Reply