AS 3.0/ Flex

Quanto de memória sua aplicação Flex/FlashCS3 consome

Com o novo Flash Player 9 a API do Actionscript 3.0 no pacote flash.system, você ganhou a possibilidade de medir quanto de memória seu aplicativo seja ele Flash ou Flex está consumindo no momento que está sendo executado.

Graças a classe System você também pode verificar qual é a versão da máquena virtual que está o arquevo SWF. O método totalMemory te indica quanto de memória está sendo gasta quando é executado.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
 
	<mx:Script>
		<![CDATA[
			import mx.managers.SystemManager;
 
			import flash.system.System;
 
			public var status_:String = System.totalMemory.toString();
			public var versao:String = System.vmVersion.toString();
			public function medir():void
			{
				t.text = status_ + "n" + versao;
			}
		]]>
	</mx:Script>
	<mx:Button click="medir()" x="10" y="39" label="Ver uso"/>
	<mx:TextArea id="t" x="10" y="69"/>
</mx:Application>

Uma vez que foi feito isso, você pode aplicar por exemplo para medir tempo de resposta quando o Player está comunicando com o Server-side e trazendo os valores dos Objetos para Value Objects do Actionscript.

Em Flash CS 3.0, você pode também usar ambas as propriedades.

Ficaria assim:

1
2
3
4
 
public var _status:Object = new Object();
_status = System.totalMemory;
trace(_status);

4 thoughts on “Quanto de memória sua aplicação Flex/FlashCS3 consome

  1. Não esqueça que o System.totalMemory vai retornar um valor incorreto no Mac.

    No caso do Mac ele traz o tanto de memoria que o navegador está ocupando se não me engano… se vc tiver 10 abas vai mostrar um valor maior e por ai vai.

    Resumo: não confie neste método para verificar qnto de memória está sendo usado no Mac 😉

  2. Eu preciso verificar isso Michel, realmente possa ser que, esse tipo de erro está associado ao uso do mesmo swf para medir o tamanho de memória associada a ele.

    Vou verificar com o QA da Adobe para ver se isso realmente acontece.

    Obrigado pela dica.

  3. Achei pra você colega onde eu havia visto anteriormente uma leitura sobre isto…

    http://www.gskinner.com/blog/archives/2005/07/index.html

    “It is important to note that totalMemory is a shared value within a single process. A single process may be just one browser window, or all open browser windows, depending on the browser, the OS, and how the windows were opened (ex. in OSX all Safari windows share a single process and totalMemory value, whereas it is much more convoluted in Windows).”

Comments are closed.