I got a performance problem,I ask for your help!
It is about the fmod performance on Ipad Mini 1 (other higher machine don’t have too much problem!).When we use Xcode’s TimeProfiler instrument to debug our game on Ipad Mini 1. We find there are many fmod threads ,and they cost too much cpu( 10%~25%). I try to change some Fmod Init parameters,but it doesn’t take effect.So I send this email to ask for your help！ All the sounds in my game are 3D voice except the background are normal streaming music. because my game is a shooting game. so there are many 3D sound at the same time when the player is in battle. about 20~50 sound will exists .like shooting voice, walk voice, hit voice,etc…like the picture below.
the sound bank’s output format is voribs (25~30%),I read the document:fmod suggest that we use FADPCM on ios/android.but the bank file is a little large.so we choice voribs.
I use loadBankCustom to load the background music whie is streaming. the normal sounds use loadbankMemory. I add some pictures to you about our fmod performance.
picture 2-5 are the screenshot for the XCODE CPUTimeProfiler.there are three high cost fmod thread,especially the picture 2(cost 27.4%CPU Time).can you find some problems from the 4 pictures? can you tell me those 3 thread’s function.
The picture 6-7 are about how I init the fmod and how i create a sound event instance.do you find any problems?
You can use FMOD_STUDIO_LOAD_BANK_DECOMPRESS_SAMPLES flag on the loadBank function to decompress from vorbis to PCM at load time. This will save CPU at mix time, but cost memory.
You can also use setSoftwareChannels to limit the CPU usage of the mix. The channel count passed into Initialize is the number of virtual channel handles available and won’t affect performance.