`
java2000.net
  • 浏览: 653998 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

提高 Silverlight 应用程序性能的小贴士

阅读更多

 本文讲述使 Microsoft Silverlight 应用程序快速、流畅运行的性能小贴士。

主要性能提示:

多种平台和浏览器上的测试

如果你正在为多种操作系统(例如 Macintosh 和 Windows)和多种浏览器(例如Microsoft Internet Explorer、Mozilla FireFox 和 Apple Safari)开发基于 Silverlight 的应用程序,千万要记住使用你要部署的操作系统和浏览器进行常规测试。不同系统和浏览器之间行为的不同和 Silverlight 处理这些行为的代码会影响程序性能。尤其是你的应用程序有嵌入的透明背景插件和使用大量 JavaScript 代码的时候,应当进行全面测试。

在开发期间将 EnableFrameRateCounter 设置为 true

插件的呈现性能随指定的宿主参数和内容的复杂程度而变化。我们推荐你在程序开发期间将 EnableFrameRateCounter 属性设置为 true,这个设置将在浏览器的状态栏里显示呈现的 Silverlight 内容的帧速率(fps,frames-per-second),这样,你就能为你的应用程序调优。

Silverlight 插件尽量少用透明背景

透明背景或许是很有用的,例如,当你嵌入的 Silverlight 插件包含一个非矩形的形状如汽车的照片时,你不想显示汽车周围的矩形内容。你可以设置透明的 Silverlight 插件背景只让汽车的图片显示出来。然而,使用透明的 Silverlight 插件背景对性能有重大影响,因此,应尽可能地避免使用这种功能。

使用 Silverlight 动画而不是自己创建每帧组成的动画

使用 Silverlight 插件内嵌的动画比你使用 JavaScript 创建自己的每帧动画要快的多。 随时间推移使用元素树的推荐做法是使用动画系统。这种方法是与平台和浏览器无关的,并且是最有效的。

避免对文字大小使用动画

对文字大小进行设置动画潜在地会使用大量系统资源。这是因为 Silverlight 在呈现文字时使用 hinting(字体微调) 平滑文字技术。如果如果对文字大小设置动画(通过 Transform 对象或者 FontSize 属性), Silverlight 对每帧都进行微调,这会导致资源的浪费,也可能会导致帧的丢失。 如果你的程序需要动态修改文字大小,最好使用向量图形代替文字。

避免使用 Windowless(无窗口)模式

只在必要时才设置 Windowless 属性为 true ,Windowless 模式是很费资源的,可能导致动画的破裂。

尽可能使用 Visibility(可视性) 而不使用 Opacity(不透明度)

如果你想简单地让对象可见或不可见而不是使用部分不透明度或者淡出淡入对象,请使用 Visibility 属性而不使用 Opacity 属性。Opacity 意味着较高的代价,这是因为,对象仍然是可点击的,并且需要呈现。将 Visibility 设置为 Collapsed 可避免这些问题。

Silverlight 使用多核呈现和媒体回放

Silverlight 利用多核的优点进行内容呈现和媒体回放。因此,你的 Silverlight 程序在多核系统上表现得会更好。

在全屏模式下,隐藏不用的对象

当程序进入到全屏模式时,隐藏所有在全屏模式下不需要呈现的对象,或者从元素树中断开他们。你可以将对象的 Visibility 属性设置为 Collapsed

不要使用 MediaElement 对象的 Width 和 Height 属性

尽量避免明确设置 MediaElement 对象的 width 和 height 属性。相反,让媒体元素以它原本的大小显示,如果你需要这些元素的显示大小,最好使用媒体编码工具重新将媒体编码成期望的大小。

不要使用 Path 对象的 Width 和 Height 属性

不要设置 Path 对象的 WidthHeight 属性。设置这些属性会导致额外的拉伸,影响性能。相反,明确设置 Path 对象的坐标控制它的形状和位置。

当 Downloader(下载器)完成时,分离对象并设置为 null

当你使用 Downloader 对象时,当 Completed 事件触发后,分离掉 Downloader 的所有事件处理器,然后将 Downloader 设置为 null。

将 CPU 密集的工作切分成更小的任务

当 JavaScript 运行时,插件停止呈现。通常,在事件处理器中做点少量的工作时,这不是什么问题。然而,如果你的程序需要在 JavaScript 线程上执行大量的CPU 密集的工作,我们建议你将这个工作划分为更小的任务。这将会保持期望的帧速率进行呈现。

评论

相关推荐

    IIS7部署Silverlight应用程序(1)

    【IIS7部署Silverlight应用程序】\n\nSilverlight是一种由微软开发的富互联网应用程序(RIA)平台,主要用于构建和运行丰富的交互式用户体验。它结合了XAML和.NET Framework,使得开发者可以创建具有高质量图形、...

    IIS7部署Silverlight应用程序(2)

    ### IIS7部署Silverlight应用程序的关键步骤与挑战 在部署Silverlight应用程序至IIS7的过程...这一过程虽然复杂,但通过细致的规划和实践,可以显著提高部署效率,确保Silverlight应用程序在目标环境中发挥最佳性能。

    集成网络分析的 Silverlight 应用程序

    【集成网络分析的 Silverlight 应用程序】 在信息技术领域,Silverlight 是 Microsoft 推出的一种富客户端开发技术,主要用于创建交互式、媒体丰富的 Web 应用程序。它结合了 WPF(Windows Presentation Foundation...

    Visual Studio 2010实践:如何在云中运行Silverlight应用

    在本文中,我们将探讨如何使用Visual Studio 2010在云环境中运行Silverlight应用程序,具体涉及Azure、ASP.NET MVC2以及Silverlight 4技术。首先,我们需要了解Azure是微软提供的一个云服务平台,允许开发者在云端...

    Silverlight应用程序中如何获取ASP.NET页面参数

    在开发基于Silverlight技术的富客户端应用程序时,与服务器端的交互是不可或缺的一部分。有时我们需要在Silverlight控件中访问ASP.NET页面上的参数,这些参数可能来自不同的ASP.NET页面,而不只是当前承载...

    wince6.0 R3 silverlight 应用程序框架

    Windows CE 6.0 R3 是一个嵌入式操作系统,广泛应用于各种设备...通过深入学习和实践这个资源,你可以获得构建Windows CE 6.0 R3环境下Silverlight应用程序的能力,从而为各种嵌入式设备创建引人入胜且高效的用户界面。

    如何使用Silverlight创建企业应用程序(EN)

    ### 如何使用Silverlight创建企业应用程序 #### 引言 自从2007年首次发布以来,Silverlight迅速发展并成为构建丰富互联网应用的强大平台。最初,Silverlight的重点在于提供丰富的媒体体验,允许设计师和开发者在...

    (1)创建第一个Silverlight应用

    在IT行业中,Silverlight是一种由微软开发的富互联网应用程序(RIA)平台,它允许开发者创建交互性强、多媒体丰富的Web应用程序。本教程将详细介绍如何创建你的第一个Silverlight应用,这是一个重要的起点,对于理解...

    WinCE Silverlight 示例程序

    6. **兼容性和性能**:由于WinCE的资源限制,开发者需要考虑Silverlight应用程序的性能和兼容性问题。优化代码、减少内存占用和优化UI加载都是必须关注的点。 通过这两个示例项目,学习者可以了解如何在Windows CE...

    silverlight程序部署说明

    Silverlight是由微软开发的一种跨浏览器、跨平台的应用程序框架,主要用于创建丰富的互联网应用程序(RIA)。它支持多种编程语言,如C#、Visual Basic .NET等,并且可以通过XAML进行界面设计。Silverlight能够提供高...

    Silverlight 例子程序大全

    **Silverlight 技术概述** Silverlight 是微软推出的一种基于浏览器的插件技术,用于创建丰富的互联网应用程序(RIA)。...总之,这个"Silverlight 例子程序大全"是开发者学习和提高Silverlight技能的宝贵资源。

    C# silverlight 时钟小程序

    通过学习和实践这个C# Silverlight时钟小程序,你不仅能掌握C#编程和Silverlight开发的基础,还能了解到如何利用数据绑定、定时器和样式来创建动态、交互式的Web应用程序。这是一个很好的起点,为进一步探索更复杂的...

    C#语言实现的具有地图切换功能的silverlight应用程序

    在本项目中,我们关注的是一个使用C#语言编写的Silverlight应用程序,它集成了ArcGIS API for Silverlight,主要用于实现地图的切换和转换功能。这个应用是GIS(地理信息系统)设计与开发的一个实例,展示了如何在...

    silverlight3开发班级网站小程序

    Silverlight 3作为该技术的一个重要版本,提供了更丰富的功能和更强的性能,包括更好的图形渲染、3D支持、硬件加速等,使得开发者可以创建出更复杂、更动态的Web应用程序。 二、班级网站小程序的开发基础 1. XAML...

    利用C#语言实现的silverlight应用程序,实现了一个简单的基于位置的服务功能

    在IT行业中,Silverlight是一种由Microsoft开发的富互联网应用程序(RIA)平台,它允许开发者创建交互式的、图形丰富的用户界面,常用于Web应用。在这个特定的项目中,我们看到一个利用C#语言编写的Silverlight应用...

    Silverlight 2 web 应用程序

    Silverlight是微软推出的一种富互联网应用(RIA)技术,它允许开发人员构建具有交互性强、用户体验丰富的网络应用程序。Silverlight 2是该技术的一个重要版本,它在第一版的基础上进行了诸多改进和增强,尤其针对...

    Silverlight控件应用程序

    【Silverlight控件应用程序】 Silverlight,全称Microsoft Silverlight,是微软公司推出的一种富互联网应用(RIA)技术,主要用于创建和展现具有丰富媒体元素、交互性和动态效果的Web应用程序。它结合了XAML...

    Step by Step 创建简单的Silverlight应用程序项目源码

    Step by Step 创建简单的Silverlight应用程序项目源码

    创建第一个Silverlight应用

    Silverlight是微软推出的一种基于浏览器的插件技术,用于在网页上创建丰富的、交互式的媒体和应用程序。它与Adobe Flash相似,但更专注于开发复杂的、数据驱动的Web应用程序。Silverlight以其强大的图形渲染能力、...

Global site tag (gtag.js) - Google Analytics