Performance Analysis



The following document is a performance report generated using Unity's Performance Benchmark Reporter. There's 4 test scenes, each one designed to measure performance of a different Obi asset: Obi Cloth, Obi Fluid, Obi Rope and Obi Softbody.

All tests were done using a physics timestep of 0.02, and max physics timestep of 0.1 (allowing up to 5 timesteps/frame). VSync was disabled. Each test scene was run 9 times, with increasing simulation workload. They were left to run for 100 frames (or until the maximum amount of particles had spawned, in Obi Fluid's case), then performance was measured for 500 frames. The tests measure milliseconds/frame including both simulation and rendering, to be as close as possible to a production environment. All measurements were done in standalone builds, as running in-editor incurs additional performance costs. This is what each scene looks like:

All tests were run on the same CPU (4-core Intel Xeon with hyperthreading), for more details click on the Show Test Configuration button below:


PlayerSystemInfo

						
OperatingSystem
Mac OS X 10.14.0
DeviceModel
MacPro6,1
DeviceName
José (2)
ProcessorType
Intel(R) Xeon(R) CPU E5-1620 v2 @ 3.70GHz
ProcessorCount
8
GraphicsDeviceName
AMD Radeon HD - FirePro D300
SystemMemorySize
12288

PlayerSettings

						
ScriptingBackend
Mono2x
ScriptingRuntimeVersion
GpuSkinning
False
GraphicsApi
Metal
RenderThreadingMode
MultiThreaded

ScreenSettings

						
ScreenWidth
1920
ScreenHeight
1200
ScreenRefreshRate
60
Fullscreen
False

QualitySettings

						
Vsync
0
AntiAliasing
2
ColorSpace
Gamma
AnisotropicFiltering
ForceEnable
BlendWeights
FourBones

BuildSettings

						
Platform
OSXPlayer
BuildTarget
StandaloneOSX
DevelopmentPlayer
False

EditorVersion

						
FullVersion
2018.1.0f2 (d4d99f31acba)
Select statistical method
 
 
 

Test Name:

ObiPerformanceTests_Cloth

Test Name:

ObiPerformanceTests_Fluid

Test Name:

ObiPerformanceTests_Rope

Test Name:

ObiPerformanceTests_Softbody

Conclusions

These conclusions use the median ms/frame metric:

Simulating and rendering a moderately complex character with full body cloth simulation (2552 particles / 2818 cloth vertices) takes 1.81 ms/frame (555 FPS). Cost grows sub-linearly with increasing amount of characters on screen, up to 5 characters (4.12 ms/frame, 242 FPS). With more than 5 characters, 3 timesteps per frame are required and performance takes a hit.

Simulating and rendering 3D high quality viscous fluid composed of 2000 particles takes 3.18 ms/frame (314 FPS). Cost grows sub-linearly with increasing amount of particles on screen, up to 4500 particles (4.95 ms/frame, 202 FPS). With more than 4500 particles, 3 timesteps per frame are required and performance takes a hit.

Simulating and rendering 4 high quality, low-stretch 3.5 meter ropes (8-segment sections, 20 particles/meter) takes 2.39 ms/frame (418 FPS). Cost grows sub-linearly with increasing amount of ropes on screen, up to 16 ropes (6.16 ms/frame, 162 FPS). With more than 16 ropes, 2 timesteps per frame are required and performance takes a hit.

Simulating and rendering 1 high quality softbody (722 particles / 33500 vertices) takes 2.19 ms/frame (456 FPS). Cost grows sub-linearly with increasing amount of softbodies on screen, up to 9 softbodies (4.43 ms/frame, 225 FPS). No more than 1 timestep per frame was needed in any of the tests.