CPU:400MHZ , 256MB内存,需要十秒加载完, 请教从哪字符串转换为数值处理250万条数据能再帮忙优化下么?

麦壳饼 2016-03-14 01:43:27
for ( i2 = 0; i2 < BlackProCardCount; i2++)
{

char * tempx1 = strndup(BlackProCard_recordTable[i2].CardID, AREALENGHT);
int i31 = atoi(tempx1);
if (i31 != 0 )
{
if (AreaBlackPro_recordTable[i31].Area != 0)
{
AreaBlackPro_recordTable[i31].IndexAry[AreaBlackPro_recordTable[i31].indexf] = i2;
AreaBlackPro_recordTable[i31].indexf += 1;
}
}
free(tempx1);
}
...全文
273 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cocoabird 2016-03-14
  • 打赏
  • 举报
回复
引用 3 楼 mysticboy 的回复:
int i3 = (BlackProCard_recordTable[i2].CardID[0] - '0') * 1000 + (BlackProCard_recordTable[i2].CardID[1] - '0') * 100 + (BlackProCard_recordTable[i2].CardID[2] - '0') * 10 + (BlackProCard_recordTable[i2].CardID[3] - '0'); 改了下, 2秒内, 原来 十秒
分享下哈
麦壳饼 2016-03-14
  • 打赏
  • 举报
回复
int i3 = (BlackProCard_recordTable[i2].CardID[0] - '0') * 1000 + (BlackProCard_recordTable[i2].CardID[1] - '0') * 100 + (BlackProCard_recordTable[i2].CardID[2] - '0') * 10 + (BlackProCard_recordTable[i2].CardID[3] - '0'); 改了下, 2秒内, 原来 十秒
paschen 2016-03-14
  • 打赏
  • 举报
回复
多线程处理?
jiqiang01234 2016-03-14
  • 打赏
  • 举报
回复
字符串数值是否有大小范围?如果有,可以直接查表映射,不用调用字符串函数

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧