1.热点分析
1.1热点函数
1.2热点循环
格式说明: 热点循环-(函数执行次数-各层执行总次数)
执行百分比:热点循环占本函数执行比例
函数: ParClassify
PC.L1.1.1.1.1.1.1.1.1(20-1508-165451-82643-165459-82816-662207-641719-1132580258-598519322)
执行百分比:(待VTune结果)
PC.L1.1.1.1.1.1.1.1.2(20-1508-165451-82643-165459-82816-662207-641719-1132580258-571685818)
执行百分比:(待VTune结果)
PC.L1.1.1.1.1.1.1.2(20-1508-165451-82643-165459-82816-662207-641719-641607651)
执行百分比:(待VTune结果)
PC.L1.1.1.1.1.1.1.3(20-1508-165451-82643-165459-82816-662207-641719-607569282)
执行百分比:(待VTune结果)
函数: Calculate_Gini
CG.L1.1(660864-987632880-117386765)
执行百分比:(待VTune结果)
1.3 热点代码
/* 函数 ParClassify */
// PC.L1
while(BFSqFirst)
{
MinGiniIndex = Calculate_Gini(***);
while(qptr!=LastNodeAtThisLevel->next)
{
if(Parent->MoreThanOneClasses)
{
while (lb<natr)
{
if (lb < natr)
{
for (ic=lb; ic<ub; ic++)
{
if (ic!=SplitAid)
{
// PC.L1.1.1.1.1.1.1.1
for(i=AtrBegin;i<AtrBegin+AtrSize;i++)
{
// PC.L1.1.1.1.1.1.1.1.1
if (Hash_Table[Crid(catr, ic, i)] == LeftKidIndex)
{
TempArray1[LeftPointer++] = catr[ic].valsrids[i];
}
else
// PC.L1.1.1.1.1.1.1.1.2
if (Hash_Table[Crid(catr, ic, i)] == RightKidIndex)
{
TempArray2[RightPointer++] = catr[ic].valsrids[i];
}
}
// PC.L1.1.1.1.1.1.1.2
for(j=0;j<LeftPointer;j++,i++)
{
catr[ic].valsrids[i] = TempArray1[j];
KidL->CatrCabove[ic][Ccid(catr,ic,i)]++;
}
// PC.L1.1.1.1.1.1.1.3
for(j=0;j<RightPointer;j++,i++)
{
catr[ic].valsrids[i] = TempArray2[j];
KidR->CatrCabove[ic][Ccid(catr,ic,i)]++;
}
}
}
}
}
}
}
}
/* 函数 Calculate_Gini */
// CG.L1
for(i=0;i<size-1;i++)
{
j = Recs[i].cid;
v1 -= 1.0;
v2 += 1.0;
k = (double)Cabove[j];
l = (double)Cbelow[j];
split_above += 1.0-2.0*k;
split_below += 1.0+2.0*l;
Cabove[j]--;
Cbelow[j]++;
gini = 1.0 - split_above/(v1*v) - split_below/(v2*v);
// CG.L1.1
if(gini < mgini)
{
mgini = gini;
*spointer = i+1;
}
}
2.功能分析
2.1数据标签
标签 | 数据 | 注释 |
---|
说明:s,v,m,t(全局数据)co-, tq-, tr-(局部数据)
2.2数据流分析
3.加速分析