回 帖 发 新 帖 刷新版面

主题:c2flash 如何加速

小弟好不容易找到了这个把c/c++移植到flash上的工具,但是运行的时候画面太慢了。因为他解释执行386汇编指令的。有没有什么加速的方法? 

回复列表 (共1个回复)

沙发


嗯,如果浪费时间的代码是可以并行计算的,那么可以把这些工作交给下面两个库函数去做。
 CBlockMemory::ParallelCompute 和 CBlockMemory::ParallelComputeIf
这里只说 ParallelCompute 他们的原型是:
    static int ParallelCompute(CBlockMemory & data1,int data1_start,int data1_step,CBlockMemory & data2,int data2_start,int data2_step,BOOL sign,int width,BOOL float_point,CBlockMemory & data3,int data3_start,int data3_step,int data3_width,EParallelOperator operator_,int count);
这个函数的参数较多,为了能描述清楚这两个函数的作用,我还是举例子说明吧。

下面是求一个整型数组的和的代码

int data[]={0,1,2,3,4,5,6,7,8,9};//要求和的数组
int sum;//存放结果
sum=0;
//ParallelCompute只接受CBlockMemory,所以要转换一下
CBlockMemory data_buffer;
data_buffer.Write(0,data,sizeof(data));
CBlockMemory sum_buffer;
sum_buffer.Write(0,&sum,sizeof(sum));
//利用ParallelCompute求和
ParallelCompute(
    sum_buffer,//data1
    0,//data1_start
    0,//data1_step
    data_buffer,//data2
    0,//data2_start
    sizeof(data[0]),//data2_step
    TRUE,//sign
    sizeof(sum)*8,//width
    FALSE,//float_point
    *(CBlockMemory*)NULL,//data3 没有用到data3
    0,//data3_start
    0,//data3_step
    0,//data3_width,
    PARALLEL_OPERATOR_ADD,//operator_
    sizeof(data)/sizeof(data[0]));//count

sum_buffer.Read(&sum,sizeof(sum),0);

我来回复

您尚未登录,请登录后再回复。点此登录或注册