1.热点分析
1.1热点函数
1.2热点循环
格式说明: 热点循环-(函数执行次数-各层执行总次数)
执行百分比:热点循环占本函数执行比例
函数: Database_readfrom
Dr.L1.1(1-933483-9894893)
执行百分比:(待VTune结果:预估10%左右)
Dr.L1.2(1-933483-9894893)
执行百分比:(待VTune结果:预估10%左右)
Dr.L2.1.1.1.1.1.1(1-933483-9894893 -7937744- 44441839-35786647-3970099800-35687857 )
执行百分比:(待VTune结果:预估40%左右)
1.3 热点代码
/* 函数 Database_readfrom */
// Dr.L1
for (i=lb; i < ub; i++)
{
// Dr.L1.1
for (j=0; j < numitem*2-1; j=j+2)
{
// P1
tran_utility +=buf[j+1]*profit_array[buf[j]];
}
// P2
total_tran_utility += tran_utility;
// P3
transaction_utility_array[tid] = tran_utility;
// Dr.L1.2
for (j=0; j < numitem*2-1; j=j+2)
{
// P4
item_t_utility[buf[j]] +=tran_utility;
}
}
// Dr.L2
for (i=lb; i < ub; i++)
{
for (j=0; j < numitem*2-1; j=j+2)
{
if (item_t_utility[buf[j]] >= MIN_UTILITY)
{
for (k=j+2; k < numitem*2-1; k=k+2)
{
if (item_t_utility[buf[k]] >= MIN_UTILITY)
{
for (m=0; m < t_utilitycnt[buf[j]].count; m++)
{
// Dr.L2.1.1.1.1.1.1
if (t_utilitycnt[buf[j]].t2[m].item2==buf[k])
{
// P5
t_utilitycnt[buf[j]].t2[m].t_utility += transaction_utility_array[tid];
}
}
}
}
}
}
}
2.功能分析
2.1数据标签
标签 | 数据 | 注释 |
---|---|---|
Dr.v1 | buf[j+1] | 向量 |
Dr.v2 | profit_array[buf[j]] | 向量 |
Dr.v3 | transaction_utility_array[tid] | 向量/标量 |
Dr.v4 | item_t_utility[buf[j]] | 向量 |
Dr.t1 | t_utilitycnt[buf[j]].t2[m].t_utility | 结构体,类三维向量 |
Dr.s1 | tran_utility | 标量 |
Dr.s2 | total_tran_utility | 标量 |
说明:s,v,m,t(全局数据)Dr-(局部数据)
2.2数据流分析
函数 Database_readfrom
Dr.L1.1(9行)
P1: (Dr.v1, Dr.v2), Dr.s1 -> Dr.s1;加法树
Dr.L1(12-14行)
P2: Dr.s1, Dr.s2 -> Dr.s2;加法树
P3: Dr.s1 -> Dr.v3[i]
Dr.L1.2(20行)
P4:Dr.s1, Dr.v4 -> Dr.v4;加法树
Dr.L2.1.1.1.1.1.1(42行)
P5: Dr.v3[i], Dr.t1[j][][i] -> Dr.t1[j][][i];加法树
3.加速分析