popen频繁调用问题,请各位大侠帮忙分析下~

virus0jing 2011-01-22 10:10:05
目前调的一个程序:
10个线程专门做文件解析,解析的数据通过另外的10个线程调用popen来刷新专门的文件
问题是,现在调用popen的频率太高了,每秒50次以上,导致专门解析的线程处理非常的缓慢,
请各位大侠帮忙分析下原因?

ps:1,开始以为硬盘的io会比较高,但是iostat出来的结果,iowait很小(popen刷新文件的数据量非常小)
2,16CPU时测试,CPU占用率一致在150%左右,平均idle也都会在85%以上
...全文
332 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cceczjxy 2011-01-25
  • 打赏
  • 举报
回复
每秒50次popen,那么就是每秒至少100次的进程创建和释放,那你的系统想快也够呛。
快乐田伯光 2011-01-22
  • 打赏
  • 举报
回复
为什么要频烦调用popen()? 调用一次不释放供下一次使用不更好吗?
[Quote=引用楼主 virus0jing 的回复:]
目前调的一个程序:
10个线程专门做文件解析,解析的数据通过另外的10个线程调用popen来刷新专门的文件
问题是,现在调用popen的频率太高了,每秒50次以上,导致专门解析的线程处理非常的缓慢,
请各位大侠帮忙分析下原因?

ps:1,开始以为硬盘的io会比较高,但是iostat出来的结果,iowait很小(popen刷新文件的数据量非常小)
2,16CPU时测试,CPU占用率……
[/Quote]
wuyu637 2011-01-22
  • 打赏
  • 举报
回复
每次写的东西太少了吧。你可以先把解析的结果存在一个buffer里面,每次等到buffer满了,再去刷一下,这样等于每次popen传输的量大一点,总得次数和频度就减小了

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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