1.热点分析
1.1热点函数
1.2热点循环
格式说明: 热点循环-各层执行总次数
执行百分比:热点循环占本函数执行比例
函数1: housev
hou.L1.1.1 (1-1598-1279199-681387200)
执行百分比:29.4%
hou.L1.2.1 (1-1598-1279199-681387200)
执行百分比:20%
hou.L2.1.1 (1-1598-1279199-1364053599)
执行百分比:31.5%
hou.L2.1.2 (1-1598-1279199-1364053599)
执行百分比:18%
函数2: qrevec
qre.L1.1.1 (1-2337-2203452-3525523200)
执行百分比:92.3%
1.3 热点代码
/* 函数1 housev */
// hou.L1
for(j=0; j<n-2 ;++j)
{
// hou.L1.1
for(i=0; i<m ;++i)
{
// hou.L1.1.1
for(k=i+1; k<m ;++k)
{
// P1
qs[i]+=qw[k]* *p;
// P2
qs[k]+=y* *p++; //qs1
}
...
}
// hou.L1.2
for(i=0; i<m ;++i)
{
// hou.L1.2.1
for(k=i; k<m ;++k)
{
// P3
*p++ -=qw[i]*qs[k]+qs[i]*qw[k];
}
}
}
// hou.L2
for(m=2; m<n ;++m)
{
// hou.L2.1
for(j=0; j<m ;++j)
{
// hou.L2.1.1
for(i=0; i<m ;)
// p4
h+=qw[i++]* *qs++;
// hou.L2.1.2
for(i=0; i<m ;)
// p5
*qs++ -=h*qw[i++];
}
}
/* 函数1 qrevec */
// qre.L1
for(j=0,m=n-1;;++j)
{
// qre.L1.1
for(k=0; k<m ;++k)
{
// qre.L1.1.1
for(i=0,p=evec+n*k; i<n ;++i,++p)
{
// P6
h=p[0];
// P7
p[0]=cc*h+sc*p[n];
// P8
p[n]=cc*p[n]-sc*h;
}
}
}
2.功能分析
2.1数据标签
说明:s,v,m,t(全局数据)hou-, qre-(局部数据)
2.2数据流分析
函数 housev
hou.L1.1.1(9-15行)
P1: (hou.v1, hou.v3),hou.v2[i] -> hou.v2[i];加法树
P2:(hou.v1[i], hou.v3),hou.v2 -> hou.v2;加法树
hou.L1.2.1(26行)
P3:(hou.v1[i], hou.v2),(hou.v1, hou.v2[i]),hou.v3 -> hou.v3;减法树
hou.L2.1.1(39行)
P4:(hou.v1, hou.v3),hou.s1 -> hou.s1;加法树
hou.L2.1.2(44行)
P5:(hou.s1, hou.v1),hou.v3 -> hou.v3;减法树
函数 qrevec
qre.L1.1.1(58-63行)
P6: qre.v1 -> qre.s1
P7:(qre.s1, qre.s2),(qre.s3, qre.v1) -> qre.v1
P8:(qre.s2, qre.v1),(qre.s3, qre.s1) -> qre.v1
3.加速分析