1.热点分析
1.1热点函数
1.2热点循环
格式说明: 热点循环-各层执行总次数
执行百分比:热点循环占本函数执行比例
函数1: corcol
co.L1.1.1 (1-1058-560211-2801055000)
执行百分比:99.9%
函数2: tqli
tq.L1.1.1.1.1(1-1059-4028-2969-1718414-1819800426)
执行百分比:99.4%
函数3: tred2
tr.L1.1.1.1 (1-1059-1057-560210-395322228)
执行百分比:48.7%
tr.L1.1.1.2 (1-1059-1057-560210-395322228)
执行百分比:51.3%
1.3 热点代码
/* 函数1 corcol */
// co.L1
for (j1 = 1; j1 <= m-1; j1++)
{
for (j2 = j1+1; j2 <= m; j2++)
{
// co.L1.1.1
for (i = 1; i <= n; i++)
{
// P1
symmat[j1][j2] += ( data[i][j1] * data[i][j2]);
}
}
}
/* 函数2 tqli */
// tq.L1
for (l = 1; l <= n; l++)
{
do
{
if (m != l)
{
for (i = m-1; i >= l; i--)
{
// tq.L1.1.1.1.1
for (k = 1; k <= n; k++)
{
f = z[k][i+1];
// P2
z[k][i+1] = s * z[k][i] + c * f;
// P3
z[k][i] = c * z[k][i] - s * f;
}
}
}
} while (m != l);
}
/* 函数3 tred2 */
// tr.L1
for (i = 1; i <= n; i++)
{
if (d[i])
{
for (j = 1; j <= l; j++)
{
// tr.L1.1.1.1
for (k = 1; k <= l; k++)
// P4
g += a[i][k] * a[k][j];
// tr.L1.1.1.2
for (k = 1; k <= l; k++)
// P5
a[k][j] -= g * a[k][i];
}
}
}
2.功能分析
2.1数据标签
标签 | 数据 | 注释 |
---|---|---|
co.m1 | data[i][j1], data[i][j2] | 矩阵/向量 |
co.m2 | symmat[j1][j2] | 矩阵/向量 |
tq.m1 | z[k][i+1]=f, z[k][i] | 矩阵/向量 |
tq.s1 | s | 标量 |
tq.s2 | c | 标量 |
tr.m1 | a[i][k], a[k][j], a[k][i] | 矩阵/向量 |
tr.s1 | g | 标量 |
说明:s,v,m,t(全局数据)co-, tq-, tr-(局部数据)
2.2数据流分析
函数1 corcol
co.L1.1.1(11行)
P1: co.m1[][i1],co.m1[][i2] -> co.m2[i][i];
函数2 tqli
tq.L1.1.1.1.1(28-35行)
P2: (tq.s1,tq.m1[][i1]),(tq.s2,tq.m1[][i2]) -> tq.m1[][i2]
P3: (tq.s2,tq.m1[][i1]),(tq.s1,tq.m1[][i2]) -> tq.m1[][i1]
函数3 tred2
tr.L1.1.1.1(52行)
P4: (tr.m1[i1][],tr.m1[][i2]),tr.s1 -> tr.s1;加法树
tr.L1.1.1.2(56行)
P5: (tr.s1,tr.m1[][i1]),tr.m1[][i2] -> tr.m1[][i2];减法树
3.加速分析