ifstream读取二进制文件_191.不愧是C的接口,fopen 比 ifstream 高效很多

每天一个开发小知识。

昨天写一个 C++ 程序,读取4000多个文件,每个文件20M左右。

平均处理每个文件的时长为2s,比同事写的 Python 效率低。

很不科学。

同事问我读取文件用的是哪个函数,我说用的是 ifstream

同事说难怪,你应该试试 fopen

今天,我测试下 ifstream 和 fopen。

ifstream 相关代码:

ifstream fd(file.c_str());if (!fd){
        VLOG(1) << "open file error. file: " << file;    return;}VLOG(1) << "open file success. file: " << file;string line;while (getline(fd, line)){
        ; // do nothing}fd.close();

fopen 相关代码:

FILE * fp = NULL;fp = fopen(file.c_str(), "r");char buffer[256 * 1024];while (!feof(fp)){
        fread(buffer, 1, sizeof(buffer), fp);}fclose(fp);
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值