From: Takashi I. <ti...@su...> - 2003-10-06 10:24:54
|
At Sat, 4 Oct 2003 00:42:57 -0500 (CDT), Eric A. Welsh wrote: > > I find it strange that linear and cspline are slower, while Lagrange > remains unchanged. > > Perhaps Gauss is faster because the macro was so large before and there is > now much less code within the resamplation loops now that they call a > function, so perhaps the optimizer was able to optimize the surrounding > code better? I can not explain the speed increase/decrease differences > between the different methods. i guess so, too. or, could be related with the cache. > The slower times for cubic-spline and linear look like the functions add > more overhead than the macros, like I had worried before. But the speed > of Lagrange is unchanged, and that is even simpler code than cubic-spline! > And Gauss is even a little bit faster! So for linear and Gauss, it looks > like my worries were incorrect, and that the compiler did a good job of > optimizing the functions. yes. in fact, when i tried to optimize the code using 3D now, it resulted in even the slower code than the gcc gives :) anyway, the overhead could be reduced if you set FIXED_RESAMPLATION in timidity.h. then the resamplation function is called statically, and it give the compiler to process the calls inline. however, in this case, you cannot switch the resamplation method, so there is no big merit by functionization except for the code clean-up. -- Takashi Iwai <tiwai dot suse.de> ALSA Developer - www.alsa-project.org |