Не заметил таких фатальных провалов.
Вот результат:

Код:
[ 1] Player: [WIN 10.3.181.34 RELEASE]
[ 2]
[ 3] Test started..
[ 4] get xml var 1 time : 13494
[ 5] get xml var 2 time : 13634
[ 6] get xml var 3 time : 10530
[ 7] Test finished.
[ 8]
[ 9] Test started..
[10] get xml var 1 time : 13759
[11] get xml var 2 time : 14040
[12] get xml var 3 time : 10593
[13] Test finished.
[14]
[15] Test started..
[16] get xml var 1 time : 13962
[17] get xml var 2 time : 14306
[18] get xml var 3 time : 10889
[19] Test finished.
[20]
[21] Test started..
[22] get xml var 1 time : 13994
[23] get xml var 2 time : 14086
[24] get xml var 3 time : 10624
[25] Test finished.
Вот тест:

Код AS3:
/**
* File created: '08.08.2011 8:11 AM'
*
* @author i.o.
* @version 1.0
*/
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.system.Capabilities;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.utils.ByteArray;
import flash.utils.getTimer;
[SWF(width='800', height='600', scriptTimeLimit='300')]
public class XmlCreationTest extends Sprite
{
[Embed(source = "example.xml", mimeType="application/octet-stream")]
private static const EXAMPLE_XML_ASSET : Class;
private static const EXAMPLE_XML_STRING : String = ((new EXAMPLE_XML_ASSET() as ByteArray).readUTFBytes((new EXAMPLE_XML_ASSET() as ByteArray).length));
public function XmlCreationTest()
{
if (stage)
this._init();
else
this.addEventListener(Event.ADDED_TO_STAGE, this._init);
}
///
private var _txtLog : TextField;
///
private var _logMsgCount : uint = 0;
///
private var _logMsgCountCharWidth : uint = 2;
///
public function log( msg:String="" ) : void
{
this._logMsgCount++;
var count:String = " " + this._logMsgCount.toString();
count = count.substr(count.length - this._logMsgCountCharWidth, this._logMsgCountCharWidth);
this._txtLog.appendText((this._logMsgCount > 1 ? "\n" : "") + "[" + count + "] " + msg);
}
///
private function _init( e:Event=null ) : void
{
this.removeEventListener(Event.ADDED_TO_STAGE, this._init);
// entry point
this.stage.addEventListener(MouseEvent.CLICK, this._test);
var tf:TextFormat = new TextFormat("Courier New", 11);
this._txtLog = new TextField();
this._txtLog.x = 10.0;
this._txtLog.y = 30.0;
this._txtLog.width = 800.0 - 20;
this._txtLog.height = 600.0 - 40;
this._txtLog.border = true;
this._txtLog.defaultTextFormat = tf;
this._txtLog.setTextFormat( tf );
this.addChild( this._txtLog );
tf = new TextFormat("Arial", 16, 0xFF0000, true, true);
var txtHeader:TextField = new TextField();
txtHeader.x = 10.0;
txtHeader.y = 3.0;
txtHeader.width = 800.0 - 20;
txtHeader.height = 30;
txtHeader.defaultTextFormat = tf;
txtHeader.setTextFormat( tf );
txtHeader.text = "Click on screen to start a test.";
this.addChild( txtHeader );
var playerVersion:String = Capabilities.version.replace(/,/g, '.');
var playerKind:String = Capabilities.isDebugger ? "DEBUG" : "RELEASE";
var playerInfo:String = "[" + playerVersion + " " + playerKind + "]";
txtHeader.appendText(" " + playerInfo);
log("Player: " + playerInfo );
this._test();
}
///
private function _test( ...args ) : void
{
log();
log("Test started..");
var start : Number;
var now : Number;
var counter : int;
var targetLoops:int = 10000;
// test 1
start = getTimer();
for(counter = 0; counter < targetLoops; counter++)
getXML_1();
now = getTimer();
log("get xml var 1 time : " + (now - start));
// test 2
start = getTimer();
for(counter = 0; counter < targetLoops; counter++)
getXML_2();
now = getTimer();
log("get xml var 2 time : " + (now - start));
// test 3
start = getTimer();
for(counter = 0; counter < targetLoops; counter++)
getXML_3();
now = getTimer();
log("get xml var 3 time : " + (now - start));
log("Test finished.");
}
///
private function getXML_1() : XML
{
return XML(new String(new EXAMPLE_XML_ASSET()));
}
///
private function getXML_2() : XML
{
var file : ByteArray = new EXAMPLE_XML_ASSET();
var str : String = file.readUTFBytes( file.length );
var xml : XML = new XML( str );
return xml;
}
///
private function getXML_3() : XML
{
return new XML(EXAMPLE_XML_STRING);
}
}
}
Вот XML:
example.rar