4 Resultados Experimentais
4.3 Execuções Sem Tempo de Carga
Bem como realizado em execuções com tempo de carga, calculou-se a média e o intervalo de confiança das execuções sem tempo de carga. Na Seção 4.3.1, apresentamos uma comparação entre as duas linguagens para arquivos com variados
números de recursos, considerando cada tipo de mídia separadamente. A Seção 4.3.2 contrasta, para cada linguagem e fixado o número de recursos, o desempenho para diferentes mídias a fim de determinar se este é influenciado pelo tipo de mídia. Por fim, as principais conclusões obtidas são sumarizadas na Seção 4.3.3.
4.3.1 Desempenho Relativo entre NCL e SMIL
Nesta seção são apresentadas as conclusões referentes às execuções sem tempo de carga na configuração com mais recursos disponíveis, ou seja, velocidade de CPU em 1.533 MHz e 1.256 MB de memória RAM. Analisando-se os resultados obtidos, porém, concluiu-se que a comparação entre os arquivos NCL e SMIL apresentam conclusões similares para todos os tipos de mídia apresentados. Assim, apresentamos na Figura 26 os tempos médios e intervalos de confiança para arquivos com recursos de vídeo, mas que ilustra o comportamento de todos os tipos de mídia (os gráficos com a comparação de arquivos contendo outros tipos de mídia encontra-se no Apêndice D). As conclusões obtidas a partir deste gráfico, também válidas para todos os tipos de mídia, são:
• NCL possui desempenho superior, ou no mínimo igual, a SMIL em todas as execuções sem tempo de carga. NCL é estatisticamente igual a SMIL com 90% de confiança em arquivos com 1 recurso de vídeo e em arquivos com 1 ou 2 recursos de texto. Em todos os outros casos, NCL apresenta desempenho superior.
• Ao contrário de NCL, o tempo médio de interpretação de arquivos SMIL cresce à medida que o número de recursos incluídos em um arquivo aumenta. Bem como nas execuções com tempo de carga, em execuções sem tempo de carga, NCL possui melhor escalabilidade que SMIL, e esta última apresenta grande degradação à medida que o número de recursos em um arquivo cresce.
10 100 1000 10000
1 2 3 5 10 20
Número de Vídeos Incluídos
T em p o M éd io d e In te rp re ta çã o (M il is se g u n d o s) NCL SMIL
Figura 26 - NCL x SMIL com vídeos em execuções sem tempo de carga
A Tabela 5 apresenta as diferenças entre o desempenho de interpretação dos arquivos NCL e SMIL para os diferentes tipos de mídia. É importante ressaltar que as diferenças só foram calculadas para cenários em que o teste-t (vide Capítulo 3) apresentou diferença significativa entre as linguagens. Com exceção de arquivos com apenas um vídeo ou um texto e arquivos com dois textos – para os quais os tempos de interpretação das duas linguagens são estatisticamente iguais com 90% de confiança – NCL possui desempenho superior a SMIL em todas as execuções sem tempo de carga. Desse forma, para melhor apresentação das diferenças percentuais, utilizou-se a fórmula:
Tempo Médio de Interpretação de SMIL – Tempo Médio de Interpretação de NCL Tempo Médio de Interpretação de SMIL
Analisando-se os valores da diferença entre as linguagens, é possível perceber que o percentual da diferença cresce à medida que o número de recursos em um arquivo cresce. Conforme dito anteriormente, uma vez que SMIL apresenta grande degradação no tempo de interpretação à medida que o número de recursos em um arquivos cresce e NCL possui melhor escalabilidade, a diferença tende a crescer juntamente com o número de recursos em um arquivo. A exceção dá-se em arquivos com recursos de imagem e texto com mais de cinco recursos, onde a diferença começa a decrescer, o que indica que NCL também passa a apresentar degradação no tempo de interpretação. Comparando-se a tabela em questão com a Tabela 3 e a Tabela 4, conclui-se que esta degradação dá-se mais cedo em execuções sem tempo de carga, uma vez que em execuções com tempo de carga a degradação só é notada para mais
de dez recursos por arquivos. Ainda comparando-se a tabela em questão com as tabelas anteriores, observa-se que em execuções com tempo de carga onde NCL já possuía desempenho superior, nas execuções sem tempo de carga as diferenças de desempenho são mais acentuadas. Em um arquivo contendo vinte vídeos, por exemplo, NCL possui desempenho 60,6% superior a SMIL em execuções com tempo de carga. Esta diferença sobe para 90,5% em execuções sem tempo de carga.
Diferença de Desempenho entre NCL e SMIL
Vídeo Áudio Imagem Texto
1 Recurso
Iguais com 90%
de Confiança 80,0% 65,4%
Iguais com 90% de Confiança
2 Recursos 38,1% 89,5% 78,7% Iguais com 90% de Confiança
3 Recursos 40,9% 96,1% 83,2% 65,7%
5 Recursos 64,9% 97,4% 88,1% 84,9%
10 Recursos 79,8% 98,0% 85,0% 57,8%
20 Recursos 90,5% 99,1% 78,9% 51,3%
Tabela 5 - Diferença de desempenho das linguagens para interpretação em execuções sem tempo de carga
4.3.2 Impacto do Tipo de Mídia
Sabendo-se que o desempenho relativo de cada linguagem depende do tipo de mídia, são comparados os tempos médios de interpretação dos arquivos com os diferentes tipos de mídia analisados. A Figura 27 mostra os tempos médios da linguagem NCL. Pode-se perceber claramente que a diferença entre o tempo médio de arquivos contendo vídeo e arquivos contendo outros tipos de mídia em execuções sem tempo de carga é muito superior à diferença apresentada em execuções com tempo de carga. A única exceção se faz no caso do arquivo com 20 recursos de texto, que devido à degradação do tempo de interpretação apresentada em arquivos com este recurso, supera o tempo de interpretação do arquivo com recursos de vídeo. O segundo pior desempenho de interpretação se dá em arquivos contendo recursos de texto, seguido pelos arquivos contendo recursos de imagem. Assim, o melhor desempenho é encontrado em arquivos contendo recursos de áudio. Através desta figura ainda é possível observar que, para arquivos com 10 e 20 recursos de texto, o intervalo de confiança cresce significativamente, indicando que o tempo para interpretar estes arquivos apresenta maior variabilidade, diminuindo a previsibilidade dos tempos de interpretação.
0 100 200 300 400 500 600 1 2 3 5 10 20
Número de Recursos Incluídos
T em p o M éd io d e In te rp re ta çã o (M il is se g u n d o s) Vídeo Áudio Imagem Texto
Figura 27 - Comparativo do tempo médio sem tempo de carga para os quatro objetos de mídia em arquivos NCL
Observando-se a Figura 28 é possível identificar, inicialmente, que os tempos médios de interpretação de arquivos SMIL com recursos de vídeos e áudios são consideravelmente superiores aos tempos de arquivos com imagens e textos. Arquivos com recursos de áudio apresentam pior desempenho quando possuem 2, 3, 5 ou 10 recursos incluídos, enquanto arquivos com recurso de vídeo possuem maior tempo médio de interpretação quando possuem 1 ou 20 recursos. Arquivos com recursos de imagem apresentam pior desempenho que arquivos com textos quando possuem 1 ou 2 recursos incluídos. Com 3 ou 5 recursos os tempos médios de interpretação destes arquivos não são significativamente diferentes, com 90% de confiança. Com 10 ou 20 recursos em um arquivo, a situação se inverte e arquivos com recursos de imagem passam a ter melhor desempenho que arquivos com recursos de texto. Estes resultados, no geral, são qualitativamente semelhantes aos obtidos em execuções com tempo de carga. 0 500 1000 1500 2000 2500 3000 3500 4000 1 2 3 5 10 20
Número de Recursos Incluídos
T em p o M éd io d e In te rp re ta çã o (M il is se g u n d o s) Vídeo Áudio Imagem Texto
Figura 28 - Comparativo do tempo médio sem tempo de carga para os quatro objetos de mídia em arquivos SMIL
Assumindo que os interpretadores de arquivos de cada linguagem possuem lógicas e desempenhos diferentes devido à semântica de cada uma, comparou-se os mecanismos de cache, preparação para exibição e exibição dos recursos de ambas as linguagens, a fim de entender as diferenças no tratamento dos tipos de mídia. A seguir os resultados obtidos categorizados por tipo de mídia:
• Vídeo: ambas as linguagens utilizam JMF para preparação e exibição dos vídeos, justificando a similaridade de comportamento. Sendo assim, a diferença de desempenho entre as linguagens é atribuída aos mecanismos de interpretação.
• Imagem: ambas as linguagens utilizam recursos da JVM (Java Virtual Machine) para cache, preparação e exibição das imagens. Sendo assim, a diferença de desempenho entre as linguagens é atribuída aos mecanismos de interpretação.
• Áudio: para tocar áudios, SMIL utiliza a Java Sound API [25], enquanto NCL utiliza JMF. Uma vez que o desempenho de NCL para interpretação de arquivos com recursos de áudio é superior a SMIL, alterou-se o interpretador de arquivos SMIL para também utilizar JMF. Em execuções sem tempo de carga, o desempenho de interpretação utilizando-se JMF mostrou-se cerca de 80% superior à abordagem utilizando Java Sound API, com qualquer quantidade de áudios em um arquivo. Apesar deste ganho considerável, o desempenho de interpretação de arquivos SMIL tornou-se no máximo, estatisticamente igual - com 90% de confiança - ao desempenho de interpretação de arquivos NCL. No entanto, devido à degradação encontrada em SMIL, NCL volta a apresentar melhor desempenho à medida que o número de elementos em um arquivo cresce. A Figura 29 apresenta a comparação entre os tempos médios de NCL, de SMIL com Java Sound API e de SMIL com JMF. A figura em questão mostra que com essa nova abordagem SMIL passou a ser estatisticamente igual a NCL com 90% de confiança em arquivos com um recurso áudio. Em arquivos com dez e vinte áudios a diferença entre as linguagens diminui. No primeiro caso, NCL passa a apresentar desempenho 89,3% superior a SMIL. Já para arquivos com vinte áudios, o desempenho de NCL passa a ser 95,9% superior a SMIL.
0 500 1000 1500 2000 2500 3000 3500 1 10 20
Número de Áudios Incluídos
T em p o M éd io d e In te rp re ta çã o (M il is se g u n d o s) NCL
SMIL - Java Soud API SMIL - JMF
Figura 29 - Comparativo entre NCL e as duas abordagens de SMIL para arquivos com áudios em execuções sem tempo de carga
• Texto: verificou-se que devido a um erro no código do interpretador de arquivos NCL o cache dos recursos de texto não era realizado, ou seja, a cada execução todos os recursos de texto utilizados em um arquivos eram relidos e recriados em memória. Ao corrigir o interpretador de arquivos NCL para realizar cache dos recursos utilizados, o desempenho para este tipo de mídia mostrou-se cerca de 40% superior em arquivos com mais de 5 recursos, em execuções sem tempo de carga. É importante destacar que o Ginga X-Smiles utiliza a versão 1.1.0 do interpretador NCL, e que a versão mais recente deste interpretador liberada pela comunidade Ginga em 15/08/08 - e portanto posterior às análises realizadas neste trabalho - possui a correção oficial do cache de recursos de texto. Tendo em vista que NCL já apresentava desempenho superior a SMIL anteriormente, o ganho apresentado ressalta o melhor desempenho de NCL frente a SMIL. A Figura 30 apresenta a comparação entre os tempos médios de SMIL, NCL sem cache e NCL com cache. A figura em questão mostra que com a correção do código, NCL passa a ser 72,1% superior a SMIL em arquivos com 10 recursos e 77,3% superior em arquivos com 20 recursos de texto.
0 200 400 600 800 1000 10 20
Número de Textos Incluídos
T em p o M éd io d e In te rp re ta çã o (M il is se g u n d o s) NCL - Sem Cache SMIL NCL - Com Cache
Figura 30 - Comparativo entre SMIL e as duas abordagens de NCL para arquivos com textos em execuções sem tempo de carga
4.3.3 Sumário
Analisados os quatro tipos de mídia propostos pode-se concluir, considerando-se os cenários e cargas utilizados, a respeito da execução sem tempo de carga:
• Bem como observado em execuções com tempo de carga, NCL possui maior escalabilidade que SMIL. Enquanto SMIL apresenta degradação do desempenho à medida que o número de recursos incluídos em um arquivo aumenta, o ponto de degradação de NCL varia dependendendo do tipo de mídia.
• Ao contrário do observado em execuções com tempo de carga, NCL apresenta desempenho superior - ou pelo menos estatisticamente igual - ao desempenho de SMIL nos casos analisados. Entretanto, é importante lembrar que a linguagem NCL foi favorecida durante os testes, uma vez que os tempos de execução influenciados pela coleta de lixo completa - tempos significativamente maiores do que os tempos de execuções onde não há coleta de lixo completa - foram descartados.
• Bem como em execuções com tempo de carga, na maior parte dos casos, em ambas as linguagens, a previsibilidade do tempo de interpretação diminui em arquivos com maior número de recursos.
• Arquivos NCL contendo recursos de áudio apresentam o melhor desempenho de interpretação, ao contrário de execuções com tempo de carga, onde o
desempenho para interpretar arquivos com recursos de áudio é inferior a arquivos com recursos de imagem e texto. Excetuando-se recursos de áudio, os demais tipos de mídia apresentam o mesmo comportamento de execuções com tempo de carga.
• O melhor desempenho em arquivos SMIL é dividido entre arquivos que possuem recursos de imagem e arquivos com recursos de texto, conforme análise anterior. O segundo melhor desempenho é observado em arquivos contendo recursos de vídeo. Por fim, ao contrário do comportamento observado nas execuções considerando-se o tempo de carga, arquivos contendo recursos de áudio apresentam o pior desempenho.