Написал на быструю руку класс, исходя из ваших слов. Либо, я что-то не так делаю, либо это не подходит, ибо с каждой новой линией скорость падает.
Устанавливаем fps 100 и смотрим

Код AS3:
package
{
import flash.display.Graphics;
import flash.display.MovieClip;
import flash.events.Event;
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.BitmapData;
public class test extends MovieClip
{
private var bitMAP:Bitmap = new Bitmap();
private var bitMapDATA:BitmapData;
private var graf:Sprite = new Sprite();
private var count:uint = 0;
private var step:Number = 0;
private var equityArr:Vector.<Object> = new Vector.<Object>();
public function test():void {
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
loadGrafik();
}
public function loadGrafik():void
{
for (var i:int = 0; i < 10000; i++ ) {
equityArr.push( { day:"2011.03.23", time:"13:26", money:randomRange(40, 60) } );
}
step = (300 / 10000);
graf.graphics.lineStyle(2, 0x008cd2);
bitMapDATA = new BitmapData( 300, 200 );
addChild(bitMAP);
this.addEventListener(Event.ENTER_FRAME, createPoint);
}
private function randomRange(max:Number, min:Number = 0):Number
{
return Math.random() * (max - min) + min;
}
private function createPoint(e:Event):void
{
var vectorStartTime:Number = getTime();
graf.graphics.lineTo( (step*count) , equityArr[count].money);
bitMapDATA.draw( graf );
bitMAP.bitmapData = bitMapDATA;
count++;
var vectorTime:Number = (getTime() - vectorStartTime);
trace(vectorTime);
}
private function getTime():Number
{
return (new Date()).getTime();
}
}
}
Добавлено через 19 минут
Кажется понял в чем проблема. Надо изменить функцию createPoint на

Код AS3:
private function createPoint(e:Event):void
{
var vectorStartTime:Number = getTime();
var gr:Graphics = graf.graphics;
var st:Number = (step * count);
gr.lineTo( st , equityArr[count].money);
var rect:Rectangle = new Rectangle(st, 0, (300 - st), 200);
bitMapDATA.draw( graf, null, null, null, rect, false );
bitMAP.bitmapData = bitMapDATA;
gr.clear();
gr.lineStyle(2, 0x008cd2);
gr.moveTo( st , equityArr[count].money);
count++;
var vectorTime:Number = (getTime() - vectorStartTime);
trace(vectorTime);
}