Тема: XML и Embed
Показать сообщение отдельно
Старый 08.08.2011, 04:16
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 9  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Никогда не делал через байтаррей. Решил провести тест.

Код AS3:
public class xmlTest extends Sprite {
    [Embed(source = "example.xml", mimeType="application/octet-stream")] private static const EXAMPLE_XML: Class;
    public function xmlTest() {
 
      var start   : Number;
      var now     : Number;
      var counter : int;
 
      // test 1
      start = getTimer();
      for(counter = 0; counter < 10000; counter++){
        getXML_1();  
      }
      now = getTimer();
 
      trace("get xml var 1 time : " + (now - start));
 
      // test 2
      start = getTimer();
      for(counter = 0; counter < 10000; counter++){
        getXML_2();  
      }
 
      now = getTimer();
 
      trace("get xml var 2 time : " + (now - start));
    }
 
    private function getXML_1():XML{
      return XML(new String(new EXAMPLE_XML()));  
    }
 
    private function getXML_2():XML{
      var file : ByteArray = new EXAMPLE_XML(); 
      var str  : String = file.readUTFBytes( file.length );
      var xml  : XML = new XML( str );      
      return xml;
    }
Результат:

Код:
get xml var 1 time : 4894
get xml var 2 time : 5091
если поменять тесты местами, то разрыв больше:

Код:
get xml var 2 time : 5696
get xml var 1 time : 5018

Проводил тест раз 20, чтобы быть уверенным.
Ввиду таких результатов по скорости мне кажется излишним возится с вариантом с ByteArray.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.