Actionscript/ Dicas/ Flash Player/ Flex

Dica: Exibindo o consumo de memória do Flash Player em sua aplicação Flex

Duvida vinda por e-mail, bastante desaconselhado já que demoramos muito para responder os e-mails. Como essa dúvida era legal e única, eis aqui uma solução.

Quero exibir a quantidade de memória que minha aplicação Flex está consumindo no momento da execução. Bom dificilmente você vai saber quanto ela está consumindo se você estiver com algum site aberto ou até mesmo MSN Live que use o Flash Player. Já que para ler o consumo de memória mesmo é necessário estar apenas a aplicação rodando. Uma vez que a quantidade de memória acumulativa sendo consumida é medida pelo Flash player em geral e não apenas da aplicação. Se for nessas circunstâncias você pode exibir o consumo de memória para o usuário final. Caso contrário aconselho usar os recursos do Flex Builder como Profiler para tal.

Então como exibir?

Para facilitar eu criei uma classe utilitária chamada MemoriaUtil.as

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package
{
	import flash.system.System;
 
	public class MemoriaUtil
	{
		public function MemoriaUtil()
		{
		}
		public static function uso():String{
 
			 var memoria:String = Number(System.totalMemory/1024/1024).toFixed(2)+'MB';
 
			 return memoria;
		}
	}
}

E uso no Flex assim.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
< ?xml version="1.0" encoding="utf-8"?>
<application xmlns:"http://www.adobe.com/2006/mxml" layout="absolute">
 
	<script>
		< ![CDATA[
 
 
				public function testarMemoria():void{
 
						memoriatxt.text = 'Uso atual do seu Flash Player é de: '+MemoriaUtil.uso();
				}
		]]>
	</script>
		<label enterFrame="testarMemoria()" fontSize="20" x="100" y="100" id="memoriatxt"/>
</application>