C++ ppl.h的parallel_for语句的问题

 

parallel_for的并行语句中,如果其中的变量定义在循环体外,会导致运行时间变慢很多,不知道是不是的运用有问题。比如以下三段代码:(原代码指没有使用并行执行的代码)

代码段1运行的速率比原代码还慢,而代码段2则比原代码快很多,区别仅仅只是把int iCalcLoc定义于并行循环内外;而且很奇怪的是,定义在循环外部反而速度会更慢。代码1和2对于循环体外的byte*byteArrDestR(G/B)的数组调用却不影响。但是代码段3却出现了引用循环体外的数组后,速率比原代码速度更慢的情况(调用函数前,都已经初始化了输入参数),然而如果将iCalNumR(G/B)定义在循环体内的话,循环体外就无法调用。

搞不懂呀,难受!!!!!!

/*代码1*/
int aaaa(byte *byteArrSrcR,byte *byteArrSrcG,byte *byteArrSrcB,int AiWidth,int AiHeight ,byte*AbyteArrNewColorTmp,byte *byteArrDestR,byte *byteArrDestG,byte *byteArrDestB)
{
    ....
int iCalcLoc;
Concurrency::parallel_for(iMinTop,iMaxBottom,[&](int i)
	{
	for(int j=iMinLeft;j

 

你可能感兴趣的:(C++ ppl.h的parallel_for语句的问题)