积极答复者
Silverlight3.0 霸占了 CPU

问题
-
奇怪的现象
一: <param name="splashscreensource" value="SplashScreen.xaml" />
<param name="onSourceDownloadProgressChanged" value="onSourceDownloadProgressChanged" />
和 childwindow 同时存在时,CPU会一直在50%以上。 关闭childwindow,CPU立刻为0
二、叠加多个childwindow 和 textbox 、passwordbox ,输入字符,CPU很快 到 90%.
三、没有使用childwindow,自己写了一个window类,无非 是将 内容 插入到 Grid里,必要时设置一下zIndex而已,这样的window在前两项中CPU占用更可怕。
四、任何有文本输入的页面,不做任何操作,都会吃掉10%-20%的CPU
实在想不明白 Silverlight 在干什么 ?
VNN是款不错的软件,它将更好!http://www.vnn.cn/
答案
-
有机器配置问题。
上面是个demo而已,如果effect嵌套层数越多,CPU占用越大。 <param name="windowless" value="false"></param> 是必须的 ,因为要输入中文。 <param name="MaxFrameRate" value="50"></param> 治标不治本。
目前只能慎用effect, 避免出现 effect的嵌套。
VNN是款不错的软件,它将更好!
http://www.vnner.com
http://www.vnn.cn- 已标记为答案 Min-Hong Tang - MSFT 2010年2月5日 7:01
全部回复
-
有机器配置问题。
上面是个demo而已,如果effect嵌套层数越多,CPU占用越大。 <param name="windowless" value="false"></param> 是必须的 ,因为要输入中文。 <param name="MaxFrameRate" value="50"></param> 治标不治本。
目前只能慎用effect, 避免出现 effect的嵌套。
VNN是款不错的软件,它将更好!
http://www.vnner.com
http://www.vnn.cn- 已标记为答案 Min-Hong Tang - MSFT 2010年2月5日 7:01
-
升级一下Silverlight3的版本试试。
Silverlight 3发布新版3.0.50106.0
-
你好,
silverlight 3中的effect并不会被cache,每次animate都会每一个pixel每一个pixel的去计算,所以会比较消耗资源。 但是animate结束以后会回到正常的cpu占用状态。
换句话说就是gpu的工作由cpu代劳了,所以会造成暂时的高占用。 这点在这个document里有提过要注意http://msdn.microsoft.com/en-au/library/dd901594(VS.95).aspx
具体的原因在这个讲座里说明了 http://videos.visitmix.com/MIX09/T17F(她也说了team正在尝试优化这一点)。
这个讲座也提到了一些可以用GPUAcceleration的地方,如果在做ui开发的话,可以看看。