作者luckfox (lasfd)
看板CodeJob
标题[发案] 优化C语言函数,以Assemble用inline方式(arm平台)
时间Tue Jul 5 16:15:08 2011
凡是「*[30m」开始的行,都请使用 Ctrl + y 删除。
请注意:发案人须主动更改标题[]内与内文之案件状态(发案,成案,结案),
案件状态、发案人、联络方式1、有效时间、专案说明为必填项目,
如果对於发案文章格式有不清楚的地方,请参考置底文章:[发案] 发案范例
案件状态:发包中
发案人:本人
联络方式1:先以站内信沟通
联络方式2:
有效时间:七月底
专案说明:
这是一个在Android下开发的系统,其中有一部分是用NDK写的Codec,
但是目前采用的codec演算法是用C写的,考虑到效率问题所以必须要
对演算法优化,因为硬体是ARM的,所以希望徵求懂得ARM的高手,将某
些C函数以inline的组合语言(assembly)方式改写以期增加效率,总共
约有4~6个函数要修改每个函数长度不会超过10行
例如以下的范例
Word32 L_add(Word32 L_var1, Word32 L_var2)
{
Word32 L_var_out;
L_var_out = L_var1 + L_var2;
if (((L_var1 ^ L_var2) & MIN_32) == 0)
{
if ((L_var_out ^ L_var1) & MIN_32)
{
L_var_out = (L_var1 < 0) ? MIN_32 : MAX_32;
Overflow = 1;
}
}
return(L_var_out);
}
预算:来信议价,好商量
接案者要求:可以完成即可,台北县市为佳
接受新手承案否:是/否
附注:
(以下内容鼓励结案後填写,可以询问接案人愿不愿意暴光接案身份)
结案意见:
接案人:
评价(0-10):
说明:
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.137.138.176
1F:推 ericinttu:你怎麽衡量有优化? 07/05 16:16
2F:→ luckfox:可以比较此C函数编译後和用组语组译後的指令数 07/05 16:25
3F:→ luckfox:或是让此函数跑个数万次比较双方的时间差异 07/05 16:26
4F:→ widgard:指令少cycle多还是时间多,还是用时间差比较好 07/08 18:50