教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高中教育 >

使用Flex Builder 3.x中的性能分析工具

来源:网络收集 时间:2026-01-15
导读: 教你如何使用性能分析工具并找出内存泄露的根源 关于性能分析工具 (该文翻译者:Edison Guo 原文见Flex Builder 3.x 帮助文档 About Profiling) Adobe Flex 性能分析工具(Profiler)能够帮助我们诊断应用程序中的性能瓶颈和内存泄漏。我们从Flex Builder

教你如何使用性能分析工具并找出内存泄露的根源

关于性能分析工具

(该文翻译者:Edison Guo 原文见Flex Builder 3.x 帮助文档 About Profiling)

Adobe Flex 性能分析工具(Profiler)能够帮助我们诊断应用程序中的性能瓶颈和内存泄漏。我们从Flex Builder中启动性能分析工具之后,在我们同应用程序的交互过程中,性能分析工具将记录应用程序的各种状态。例如,对象的数量及这些对象的大小,被调用的方法的数量以及调用这些方法所消耗的时间。 分析应用程序能够帮助我们确定以下问题:

n 调用频率 有时,我们会多次调用一些计算代价昂贵(耗时)的方法,而这些调用是不必要的。通过识别那些经常被调用的方法,我们能够在调节性能的过程中,专注于应用程序中对性能影响最大的地方。

n 方法耗时 性能分析工具能够告诉我们一个调用特定方法所消耗的时间。如果这个方法被调用了多次,性能分析工具将告诉我们,在与应用程序交互的这段时间里,调用这个方法所消耗的平均时间。如果其中的一些方法造成了性能瓶颈,我们可以想办法优化一下它们。

n 调用堆栈 通过追踪某一方法的调用堆栈,我们可以看到应用程序调用该方法的完整路径。

n 实例数量(对象分配) 有时,我们会发现同一对象被创建了太多次,而我们只需要这一对象的几个实例。在这些情况下,如果只需要一个实例,我们可能考虑使用单件模式;如果需要多个,则应用其他技术来减少对象分配。如果确实需要很多该对象的实例,我们得考虑优化对象本身来降低资源总数以及内存占用量。

n 对象大小 如果观察到某些对象大小异常,我们可以尝试优化它们以减少其内存占用量。程序中某些对象被多次创建时尤为有效。

n 垃圾回收 比较性能快照时,我们可能发现一些不再被程序使用的对象仍然在“loitering”,或者存储在内存中。为了避免内存泄漏,我们可以添加一些逻辑,来移除这些对象身上的“残余”引用。

我们不应当把性能分析看成一个与应用程序开发毫无关联,相对独立的阶段。相反,性能分析应当或多或少的集成到整个开发过程的每一阶段。我们在开发过程中应尽可能的早进行性能分析,多进行性能分析。这样,我们才能更快的找出有问题的地方。性能分析是一个反复进行的过程,尽可能频繁的进行性能分析将使我们受益无穷。

使用Flex Builder 3.x 性能分析工具

教你如何使用性能分析工具并找出内存泄露的根源

Using the Flex Builder 3.x Profiler)最近接触了许多内存泄漏方面的问题。 现在我终于有时间将我在分析内存泄漏中用到的技术写下来了。

我创建了一个SWF文件来代替 PowerPoint。这样,在看报告的同时,大家也可以学习如何使用Profiler。在文章中,我说明了性能分析工具中显示的内存与通过System.totalMemory获取的内存及进程(Flash Player, IE, Firefox)所占用内存的不同,并演示了针对内存泄漏问题中常见的两个情景,该如何分析。 查看报告(英文)

和往常一样,以下是附加的说明。

经常听到的一个话题是如何实现XML驱动或数据驱动的用户界面。在这个SWF文件中,我演示了一种实现方法。报告内容由一个XML 文件控制。一个独立的引擎解析这个XML文件,根据解析的结果创建特定的交互部件。改变报告的内容仅需要修改XML文件即可。我也可以轻松的添加新的部件。源码可以从这里得到: 下载Flex Builder项目

这个SWF同时也演示了一种改进启动时间的技术。我们的Blog系统用起来太痛苦了,我不希望在发表日志的时候上传两个以上的文件,而这篇报告有成打的图片需要上传。因此,我将这些图片嵌入到SWF中,而不是从外部将它们加载进来。但是,下载这些图片所花费的时间将延迟启动。为了避免这种情况,我将所有的图片塞进SWF的第三帧,这样Flex就能迅速启动并运行,而这些图片在SWF文件末尾才会被下载。之所以这样做,是因为这些图片并会立刻被使用。 希望这些能帮助大家!

译者注:

如何将图片嵌入到第三帧?

//将第三帧加载图片以改善加载时间。对于MXMLC,添加:

// –frame=Three,Frame3Assets

//作为编译参数

// 能够这样做是因为我们首次呈现给用户的内容中不包含这些图片

参见Flex应用程序启动详解

性能分析工具情景

教你如何使用性能分析工具并找出内存泄露的根源

profiler scenarios情景

l 如何使用Flex Builder 3.x性能分析工具找出内存泄漏依赖于应用程序自身的行为

l 有两种常见情景

n 创建/销毁

n 替换当前

创建/销毁

l 在一个创建/销毁情景中,一连串的对象被创建,之后被销毁

n 弹出式对话框是一个经典的例子

l 所有被创建的对象所占用的内存都应被回收

l 内存占用量在开始的时候有一个初始值,对象被创建后,该值增长,对象被删除,内存被回收后,该值应恢复为初始值

替换当前

l 在一个“替换当前”的情景中,一连串的对象被类似的一系列新对象所替换 n 这个幻灯片就是一个例子

n 当改变幻灯片的时候,老的幻灯片被新的所替换

l 因为对象被替换而不是销毁,内存占用量应大致保持在相同的水平 性能分析工具最适合创建/销毁情景

l 性能分析工具被设计出来主要用于诊断创建/销毁情景

n “游荡对象”视图显示出存在于最近一次内存快照中,之前的内存快照中没有出现过的对象

n 在“替换当前”情景中“游荡对象”将显示所有(或大多数)对象,因为替换的对象总是在之前的内存快照中不存在的对象

l 十分不幸,这意味着分析“替换当前”场景时,我们不得不手动的比较内存快照

教你如何使用性能分析工具并找出内存泄露的根源

在创建/销毁场景中,我们可以很简单的通过“游荡对象”视图,找到那些应当被销毁,但是依然存在的对象。因为,只要是出现在视图中的,都是被怀疑的对象。浏览并锁定那些应当被销毁的对象即可。

在“替换当前”情景中,因为“游荡对象”显示出了所有的对象,即使它不应当被销毁。因此,我们没办法简单的判断一个对象是否该存在,只能手动的在内存快照中寻找答案。

游荡对象(Loitering Objects):应当被销毁,释放掉其所占用的内存,但是因为某种原因仍在内存中保留的对象。

分析外部应用程序

l 这一SWF文件能够用来演示如何分析外部应用程序的性能

n 通常情况下,我们会打开一个项目,并分析这个项目中的应用程序 n 我们一起来看看如何分析“创建/销毁”和“替换当前”情景

l 开始之前,打开“Profiling”视图,在“Profile”菜单下选择“Profile External Application”

启动性能分析工具

l 我们会看到一个如下的对话框

教你如何使用性能分析工具并找出内存泄露的根源

l 点击“New”按钮来添加一个新的应用程序

添加新的应用程序

l 我们将看到一个如下的对话框

l 输入如图所示的URL,然后点击“OK”

启动应用程序

教你如何使用性能分析工具并找出内存泄露的根源

l 应该有一个这样的对话框出现

l 点击这一SWF文件的URL使它高亮

l 点击“Launch”按钮

配置性能分析工具

l “Configure Profiler”对话框出现

教你如何使用性能分析工具并找 …… 此处隐藏:4465字,全部文档内容请下载后查看。喜欢就下载吧 ……

使用Flex Builder 3.x中的性能分析工具.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1733507.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)