[Scummvm-devel] Slowdowns in SCI and SAGA

Max Horn max at quendi.de
Thu Nov 26 16:47:19 CET 2009


Am 26.11.2009 um 13:38 schrieb yotam barnoy:

> >>so 48.69 + 15.21 = 63.9 % for code clearly associated to the OPL  
> emulation. Hmm... still this list is somewhat surprising to me. For  
> example, why does it list CLIP<int> ? The profiler shouldn't  
> >>really be seeing this template, it should be fully inlined. What  
> optimization level do you use?
>
> Good call. I use -O0 optimization when profiling. I'm kind of new to  
> it, and thought it was important to keep minimal optimization like  
> in debugging. I could redo it with -O3 (our usual optimization), but  
> just assume that instead of the time being spent on CLIP, it'll be  
> in the calling procedure ie. CALC_CH.

Well, compiling with -O0, and running with profiling one, will  
definitely skew the results tremendously. Because it will make things  
a lot slower; thus sample generation (by the OPL emulator) is a lot  
slower; thus lock contention becomes a much bigger problem, because  
code will hold the lock a lot longer, etc.



>
> >>But the real bummer seems to be the 12.83% time spent in   
> OSystem_PSP::unlockMutex. I wonder if that's the mixer mutex, and  
> it's stalling because of lock contention.
>
> Here's the detailing of where that 12% goes:
>
>                 0.00    0.67     935/9608         
> DefaultTimerManager::handler() [54]
>                 0.01    5.87    8188/9608         
> Sci::SfxPlayer::player_timer_callback(void*) [18]
> [12]    12.9    0.02    6.89    9608          
> Common::StackLock::~StackLock() [12]
>                 0.02    6.87    9608/9608         
> Common::StackLock::unlock() [13]
>
> player_timer_callback is stalling on the lock.

Hm, odd. It should only stall on it when something else is holding the  
lock. From a quick test in SQ3, this is very rarely the case. Can you  
please tell us with which game you obtained these numbers?

Bye,
Max




More information about the Scummvm-devel mailing list