Benchmark Analysis 7:SPEC2006.429mcf

本文详细分析了SPEC2006.429mcf基准测试中执行时间的主要分布,重点讨论了14个关键函数及其内部热点循环。执行百分比显示了这些函数在程序总执行时间中的占比,例如primal_bea_mpp的pb.L1.1占比40.72%,refresh_potential的rp.L1.1占比30.05%等。通过对这些热点函数和循环的深入理解,有助于提升程序的性能优化。
摘要由CSDN通过智能技术生成

1.Hotpots analysis
1.1Hot functions
在这里插入图片描述
1.2Hot loops
格式说明:
执行百分比:热点循环占本函数执行比例(热点循环占程序执行比例)
Explanation of Format:
Execution time percentage:Percentage of Execution time in current function(Percentage of Execution time in current program)

Total:91.7%

Function 1:primal_bea_mpp
pb.L1.1
Execution time percentage:99.0%(40.72%)

Function 2: refresh_potential
rp.L1.1
Execution time percentage:99.2%(30.05%)

Function 3: price_out_impl
po.L1.1
Execution time percentage:70%(5.87%)

Function 4:update_tree
ut.L1
Execution time percentage:90%(7.02%)

Function 5: replace_weaker_arc
re.L1
Execution time percentage:99%(4.82%)

Function 6: primal_iminus
pi.L1
Execution time percentage:99% (函数调用)

Function 7: sort_basket 76.4%(1.13%)
sb.L1.1
Execution time percentage:15.5%
sb.L1.2
Execution time percentage:24.6%
sb.L1
Execution time percentage:36.3%

Function 8: write_circulations
wc.L1.1.1.1
Execution time percentage:100%(0.86%)

Function 9: insert_new_arc
ina.L1
Execution time percentage: 50%(0.27%)

Function 10: flow_cost
fc.L1
Execution time percentage:64.4% (0.26%)

Function 11: dual_feasible
df.L1
Execution time percentage:99% (0.35%)

Function 12: suspend_impl
si.L1
Execution time percentage:99% (0.25%)

Function 13: primal_net_simplex
pns.L1
Execution time percentage:90% (函数调用)

Function 14: refresh_neighbour_lists
rnl.L1
Execution time percentage:98% (0.1%)

1.3 Hot code phase

/*   Function 1 primal_bea_mpp */
// pb.L1
for( ; arc < stop_arcs; arc += nr_group )
{
   
	if( arc->ident > BASIC )
	{
   
		red_cost = arc->cost - arc->tail->potential + arc->head->potential;
		
		if( bea_is_dual_infeasible( arc, red_cost ) )
		{
   
			basket_size++;
			perm[basket_size]->a = arc;
			perm[basket_size]->cost = red_cost;
			perm[basket_size]->abs_cost = ABS(red_cost);
        }
    }
}

/*   Function 2 refresh_potential */
// rp.L1
while( node != root )
{
   
	while( node )
	{
   
		if( node->orientation == UP )
        	node->potential = node->basic_arc->cost + node->pred->potential;
        else /* == DOWN */
        {
   
			node->potential = node->pred->potential - node->basic_arc->cost;
            checksum++;
        }
}


/*   Function 3 price_out_impl */
// po.L1
for( ; i < trips; i++, arcout += 3 )
{
   
	while( arcin )
    {
   
  		tail = arcin->tail;
		if( tail->time + arcin->org_cost > latest )
        {
   
			arcin 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值