- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道探查器问题可能非常笼统,但这里我有一个非常具体的问题和示例。
我知道在下面的代码(取自 Joshua's question )中,无限数量的circle 对象实例被添加到hostComponent 中。这显然会导致应用程序逐渐变慢。
我的问题是,当我运行 Flash Builder Profiler 时,我到底在哪里看到问题所在?
要尝试一下,请创建一个新的 Flex 4 项目,然后粘贴以下代码:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
initialize="onInit()" viewSourceURL="srcview/index.html">
<fx:Script>
<![CDATA[
import mx.core.UIComponent;
import mx.effects.Fade;
import spark.effects.Move;
private var hostComponent:UIComponent;
private function onInit():void{
hostComponent = new UIComponent();
hostComponent.id = "circleHostComponent";
}
/* Add circle UIComponent objects to the hostComponent.
Move and Fade the circle objects */
private function onTimerEvent(event:TimerEvent):void{
var yPos:Number = Math.ceil(Math.random()*100);
var radius:Number = Math.ceil(Math.random()*5); //1-12
var effectAlpha:Number = Math.random()*0.5 + 0.2 // 0-1
var effectDuration:Number = Math.ceil(Math.random()*3000) + 1000;
var circle:UIComponent = new UIComponent();
circle.graphics.beginFill(0x1C75BC, effectAlpha);
circle.graphics.drawCircle(90, yPos, radius);
circle.graphics.endFill();
hostComponent.addChild(circle);
var moveEffect:Move= new Move(circle);
moveEffect.xBy = 300;
moveEffect.duration = effectDuration;
moveEffect.play();
var fadeEffect:Fade = new Fade(circle);
fadeEffect.alphaFrom = 1;
fadeEffect.alphaTo = 0;
fadeEffect.duration = effectDuration;
fadeEffect.play();
this.addElement(hostComponent);
}
private function onClick():void{
startButton.enabled = false;
var t:Timer = new Timer(100, 0);
t.start();
t.addEventListener(TimerEvent.TIMER, onTimerEvent);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Button id="startButton" label="Click to Start" click="onClick()" />
</s:Application>
最佳答案
首先,我会在使用该应用程序一段时间后查看“内存使用情况”面板:
注意内存越来越多。有一个“运行垃圾收集器”按钮可以强制执行 GC。然而,当你点击它时,内存并不会减少。
下一步是找出罪魁祸首。为此,您可以使用“事件对象”面板:
看起来是这样的,除了一些 Vector 实例之外,一切看起来都很好。默认情况下,许多类是从事件对象数据网格中过滤出来的。幸运的是,我们可以指定要显示和隐藏哪些类。默认情况下,flash.x.x 包中的所有类都是隐藏的。从过滤列表中删除它们会给表带来一些有趣的东西:
注意 Graphics 行:已经创建了 871 个实例,并且它们仍然在内存中!有了这些信息,您就可以假设 Graphics 实例是导致应用程序速度减慢的原因。如果您还过滤掉 mx.* 类,您将看到有 871 个 UIComponents 实例。每次创建 UIComponent 时,都会实例化一个 Graphics 对象。
最后一步是在屏幕上不再需要每个 UIComponent 后将其删除,并查看是否有任何性能改进。
关于apache-flex - Flash Builder 4 分析器 : how to spot what objects are causing a known memory increase?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4958795/
016-03-07T09:10:16.992-0600 W NETWORK [HostnameCanonicalizationWorker] Failed to obtain name info f
我有一个工作的 C 程序,其中字符串数组的长度在编译时已知。它是: char array_person_name[3][101]; char person_name[101] = ""; ... st
我正在做一个需要Graph DB 的项目。我正在使用 C# .Net Core 开发项目。我不得不选择 ArangoDB 作为这个项目的 Graph DB。不幸的是,.Net 没有官方驱动程序。这就是
我正在尝试使用 DataContractSerializer 将对象序列化为 Xml。我有以下类(class); [ActiveRecord(Lazy = true)] [KnownType(type
我有: 身份服务器 4, 具有 OpenId Connect 和混合流的 Mvc 应用 WebApi 应用 假设用户已经获得带有 id_token 和访问 token 的 cookie。然后他从 mv
我有: 身份服务器 4, 具有 OpenId Connect 和混合流的 Mvc 应用 WebApi 应用 假设用户已经获得带有 id_token 和访问 token 的 cookie。然后他从 mv
我有一个简单的 Asp.Net Core Azure Web 应用程序,需要向本地 Rest 服务发出 http get 请求。此 Rest 服务托管在 IIS 上,仅针对端口 443 设置了绑定(b
这个问题可能是一个很好回答的问题,但不幸的是我不知道正确的术语来正确地问它,所以...... template class __bit_iterator; 有人可以在这里解释最后一个模板参数吗?我唯
在基于ASP.NET Core 1.1.1开发的VS2017 Ver 15.3.3应用程序中,我使用Account confirmation and password recovery in ASP.
我有一个应用程序(aspnet core app 3.1),在启动期间使用以下代码从 azure blob 存储加载数据: BlobClient client = new BlobClient(loa
我有一个应用程序(aspnet core app 3.1),在启动期间使用以下代码从 azure blob 存储加载数据: BlobClient client = new BlobClient(loa
我想知道如何查询Wikidata通过使用别名(“也称为”)。 现在我正在努力 SELECT ?item WHERE { ?item rdfs:aliases ?alias. FILTER(CONTAI
这是一个 PNG 类,在类文档中列出了两个构造函数,如下所示。 PNG::PNG ( string const & file_name ) Creates a PNG image
这就是我目前拥有的,以及我的教授提供的扫描仪。 #include "Similarity.h" #include "Scanner.h" using namespace std; int Simila
我想从我的 asp 页面连接到 mysql 数据库。因此,根据我的托管服务提供商的说法,我使用了连接字符串,其中服务器被指定为“localhost:3309” Dim myConnection As
我正在尝试集成的第三方应用程序,要求将文件放入 .well-known文件夹。如何使该文件可从 URL 访问? ( example.com/.well-known/token.txt )。站点部署为
尝试学习 Hibernate,我正在尝试学习如何执行 NamedQuries但每次我都会收到 Exception in thread "main" org.hibernate.MappingExcep
我正在尝试将 PWA 发布到 Google Playstore。我被困在数字 Assets 握手中。 这是我的 nginx conf - location /asd/ { default_t
我正在尝试设置 wordpress xml-rpc带 rails : blog = XMLRPC::Client.new("localhost/blog", "/xmlrpc.php", 80) 但是
我在我的 nginx 配置中有这个: location ~ /\. { deny all; } location /.well-known/ { allow all; } 但是我还是不
我是一名优秀的程序员,十分优秀!