命令行数据执行优化

1. 表述

C 用 popen 函数执行命令行,并会返回一个 FILE* 指针,在用 fgets 函数逐行读取的数据的时候,会有约 20ms 的延迟;仅当第一次 fgets 的时候会有此现象;

如果优化掉这一点,就会有约 150ms 的优化~ 极具诱惑力~~

2. 该怎么优化呢

char line[1024] = {0};
FILE* fp = popen(cmd, "r");
if (fp != NULL) {
  LOG(balala start);
  fgets(line, 1024, fp);
  LOG(balala %s line);
}

替换成 fread 来读取好使会增加到 25ms

fseek(rFD, 0L, SEEK_END);
int size = ftell(rFD);
char* buffer = (char*)du_malloc(size + 1);
fread(buffer, size, 1, rFD);

依然不好使

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,383评论 0赞 38
  • php usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解包。 uni...
    思梦PHP阅读 2,182评论 1赞 24
  • 总结了一些开发中常用的函数: usleep() //函数延迟代码执行若干微秒。 unpack() //函数从二进制...
    ADL2022阅读 591评论 0赞 3
  • PHP常用函数大全 usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解...
    上街买菜丶迷倒老太阅读 1,547评论 0赞 20
  • 销售其实也是一个管理过程,管理永远就需要科学,科学的管理就是可以模仿、可以复制、复制最关键的就是标准化。营销管理培...
    Eggyino阅读 718评论 0赞 0

友情链接更多精彩内容