I updated the GUIMark code with Silverlight 2 RTW and I wrote a little article about it.
http://www.silverlighthack.com/post/2008/10/21/Silveright-2-RTW-Performance-GUIMark.aspx
I have a demo of the new code working here:
http://www.silverlighthack.com/Examples/SilverlightGUIMark/GUIMark_Silverlight2RTMTestPage.html
So this is what is weird. You will notice that I have a Frame Rate radio button group, where the user can decide to set the Maximum frame rate: Application.Current.Host.Settings.MaxFrameRate
The default setting is 60. Technically, this means that is the maximum number of times a render loop will fire per second. Silverlight 2 RTW has a nice new way to ensure that the render loop fires that many times by using CompositionTarget.Rendering
I originally posted this code yesterday and some people posted in my article that Flas/Flex was showing a 15 FPS improvement over Silverlight. I thought that was weird. I started tweaking the MaxFrameRate and found some interesting stuff with the demo.
- If I set the Frame Rate to 10..I get about 10 FPS
- If I set the Frame Rate to 20...I get about 20 FPS
- If I set the Frame Rate to 30...I get about 30 FPS
- If I set the Frame Rate to 40...I get about 40 FPS
- If I set the Frame Rate to 50...I get about 35 FPS
- If I set the Frame Rate to 60..I get about 35 FPS
- If I set the Frame Rate to 70..I get about 35 FPS
- If I set the Frame Rate to 100...I get about 40 FPS
- If I set the Frame Rate to 200...I get about 43 FPS
- If I set the Frame Rate to 500...I get about 45 FPS
I get that as I try to increase the amount of times the render event loop fires there is some overhead..so it makes sense that as I go up the FPS goes down a little. However, why is it going back up after increasing it to 500?? To me this doesn't make sense. It almost sounds like there is different logic being used when the Frame Rate is set to something really high.
I know that this is a moot point, since the human eye can't notice anything more than about 31 FPS But for baselining this is important vs Flash/Flex/JavaFx or testing performance. Can anyone explain what is going on here??
Please "Mark as Answer" if any of my content helped
Bart Czernicki
http://www.silverlighthack.com | http://www.twitter.com/bartczernicki