最新要闻
- 百事通!成了!微信:视频号用户总使用时长接近朋友圈80%
- 天天要闻:开袋即食 一口弹牙 大牌优形肉肠0.99元/根(商超2.5元)
- 快资讯:期待!《生化危机4:重制版》威斯克或将登场
- 特斯拉门店:降价维权后销量翻倍!全国一天提车量超1万台
- 2023支付宝集五福最全攻略 神秘玩法千万别错过
- 琥珀银杏果是什么东西?琥珀银杏果是什么地方的菜?
- 兵长一米六是什么意思?兵长一米六顺口溜
- 美髯公指的是谁?美髯公是什么意思?
- 金坷垃是什么意思?金坷垃是什么时候的梗?
- 肥皂水是碱性还是酸性?肥皂水的主要化学成分是什么?
- 主角叫萧破天的小说有哪些?主角叫萧破天的全部小说
- 转世仁波切是什么意思?转世仁波切怎么认证?
- 电信拨打长途前面加什么?电信拨打长途要钱吗?
- dnf武极觉醒技能怎么点?DNF武极觉醒技能介绍
- 倒角外倒角内倒角怎么区分?倒角外倒角内倒角的区别有哪些?
- 申怡走进云南白沙湾小学开讲公益语文课 用语文点亮希望的灯火
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
文件IO操作开发笔记(二):使用Cpp的ofstream对磁盘文件存储进行性能测试以及测试工具
(资料图片仅供参考)
前言
在做到个别项目对日志要求较高,要求并行写入的数据较多,尽管写入数据的线程放在子线程,仍然会造成界面程序的假死(实际上Qt还是在跑,只是磁盘消耗超过瓶颈,造成假死(注意:控制台还能看到打印输出,linux则能看到打印输出)。 本篇升级了测试工具,并且测试了ofstream在USB3.0和M.2SSD上的写入性能。
版本v1.1.0
更新版本版本,新增了c++的ofstream写入方式。
测试工具v1.1.0下载地址
请自行溯源搜索,发不出
使用C++的ofstream测试结果
USB3.0移动硬盘测试结果
所以,线程越开越多,在某一个阈值线程数(实际打开操作的文件数)会导致性能大幅下降,而且会持续有多个阈值类似的。
M.2主板上SSD测试结果
使用C++的ofstream(用flush)测试结果
USB3.0移动硬盘测试结果
M.2主板上SSD测试结果
结论:这个明显受到硬盘数据传输的影响。
关键代码
void FileIoTestManager::slot_optFileUseCppOfstream(int loopTime, int loopWrite, int dataSize, bool flush){ QDir dir; QString dirPath = QString("%1/%2") .arg(QApplication::applicationDirPath()) .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd hh_mm_ss_zzz")); if(dir.mkpath(dirPath)) { message(QString("创建文件夹成功: %1").arg(dirPath)); }else{ message(QString("创建文件夹失败: %1").arg(dirPath)); } // 生成数据 message(QString("生成测试数据,数据长度: %1").arg(dataSize)); QByteArray byteArray; byteArray.append(dataSize, 0xFF); message(QString("==========================测试开始==============================")); double totalTime = 0; // 总计时间 double fileTotalTime = 0; // 操作单个文件总时间 double writeFileTime = 0; // 单个文件单词写入时间 totalTime = QDateTime::currentDateTime().toMSecsSinceEpoch() * 1.0f; for(int loopIndex = 0; loopIndex < loopTime; loopIndex++) { QString filePath = QString("%1/%2_%3") .arg(dirPath) .arg(QDateTime::currentDateTime().toString("hh_mm_ss_zzz")) .arg(loopIndex, 6, 10, QChar("0")); std::ofstream outFile; outFile.open(filePath.toUtf8().constData()); writeFileTime = QDateTime::currentDateTime().toMSecsSinceEpoch(); for(int writeIndex = 0; writeIndex < loopWrite; writeIndex++) {// message(QString(" 第%1次写入文件,写入长度%2字节").arg(writeIndex + 1).arg(dataSize)); outFile << byteArray.constData(); if(flush) { outFile.flush(); } if(_stop) { outFile.close(); message(QString("==========================测试手动停止===========================")); _stop = false; emit signal_finished(); return; } } writeFileTime = QDateTime::currentDateTime().toMSecsSinceEpoch() - writeFileTime; writeFileTime = writeFileTime / loopWrite; message(QString("每次写入数据平均耗时(不包含打开关闭文件): %1ms").arg(writeFileTime));// message(QString(" 第%1次关闭文件").arg(loopIndex + 1)); outFile.close(); } message(QString("==========================测试结果==============================")); totalTime = QDateTime::currentDateTime().toMSecsSinceEpoch() - totalTime; fileTotalTime = totalTime * 1.0f / loopTime; message(QString("操作创建文件次数: %1, 单个文件循环写入次数: %2, 每次写入固定数据长度: %3, %4") .arg(loopTime) .arg(loopWrite) .arg(dataSize) .arg(flush ? "每次使用flush" : "不使用flush")); message(QString("总耗时: %1ms").arg(totalTime)); message(QString("单个文件循环写入平均总耗时(包括打开关闭文件): %1ms").arg(fileTotalTime)); message(QString("每次写入数据平均耗时(包括打开关闭文件: %1ms").arg(fileTotalTime * 1.0f / loopWrite)); message(QString("==========================测试结束==============================")); emit signal_finished(); return;}
工程模板v1.1.0
后续
会持续补充测试其他方式,ofstream本次测试比QFile的性能还差一些。
-
文件IO操作开发笔记(二):使用Cpp的ofstream对磁盘文件存储进行性能测试以及测试工具
前言在做到个别项目对日志要求较高,要求并行写入的数据较多,尽管写入数据的线程放在子线程,仍然会造...
来源: 文件IO操作开发笔记(二):使用Cpp的ofstream对磁盘文件存储进行性能测试以及测试工具
百事通!成了!微信:视频号用户总使用时长接近朋友圈80%
天天要闻:开袋即食 一口弹牙 大牌优形肉肠0.99元/根(商超2.5元)
快资讯:期待!《生化危机4:重制版》威斯克或将登场
特斯拉门店:降价维权后销量翻倍!全国一天提车量超1万台
2023支付宝集五福最全攻略 神秘玩法千万别错过
琥珀银杏果是什么东西?琥珀银杏果是什么地方的菜?
兵长一米六是什么意思?兵长一米六顺口溜
美髯公指的是谁?美髯公是什么意思?
金坷垃是什么意思?金坷垃是什么时候的梗?
肥皂水是碱性还是酸性?肥皂水的主要化学成分是什么?
主角叫萧破天的小说有哪些?主角叫萧破天的全部小说
转世仁波切是什么意思?转世仁波切怎么认证?
电信拨打长途前面加什么?电信拨打长途要钱吗?
今日最新!金子塔图,自定义图表,伪漏斗图
环球今日报丨Codeforces 1704 F Colouring Game 题解 (结论,SG函数)
dnf武极觉醒技能怎么点?DNF武极觉醒技能介绍
倒角外倒角内倒角怎么区分?倒角外倒角内倒角的区别有哪些?
申怡走进云南白沙湾小学开讲公益语文课 用语文点亮希望的灯火
【新视野】专心打造小米汽车!雷军已卸任多家小米旗下公司职务
天天新资讯:《中国奇谭》爆火出圈!淘宝周边已卖断货 网友建议快出小野猪毛刷
世界速看:特斯拉二把手上位之路:朱晓彤如何打动马斯克?
环球资讯:比特斯拉多卖40万辆 比亚迪提前锁定2022年全球新能源销冠
【环球热闻】日志瘦身骚操作:从 5G 优化到 1G。
重磅发布丨从云原生到 Serverless,先行一步看见更大的技术想象力
世界简讯:rsync使用技巧
最新快讯!美国要给飞机安装5G信号屏蔽仪:避免影响航空安全
足坛再无“大圣” 33岁老将贝尔宣布退役
世界报道:2023年世界航天首次失利!英国维珍轨道火箭异常:9颗卫星没了
极狐考拉发布首款智能亲子车:有侧滑门、自带电子安全座椅
你集齐五福了吗?扫这张图能拿额外福卡 每天都有
【全球新要闻】劳斯莱斯2022年销量刷百年纪录!土豪都喜欢定制车
【天天聚看点】1.47英寸大屏、14天续航!Redmi手环2年货节优惠:仅159元
当前热门:腾讯股价翻倍 港股又香了 2023年首只爆款基金20亿一天卖完
全球观热点:联合国:地球臭氧层有望在40年内恢复 已步入正轨
环球即时看!国外小伙买世界最亮手电筒 网友:天已亮 该去上班了
天天微动态丨清华教授:互联网公司很难形成垄断了
支付宝“集五福”正式开启:已有2.7万人火速集齐 分5亿红包
天天微速讯:最新安卓手机用户偏好榜:12G内存、512G存储逐渐成主流
每日热文:洛谷P3956. [NOIP2017. PJ]棋盘
Spring IOC官方文档学习笔记(八)之容器扩展点
HTML超文本标记语言4
【环球快播报】茅台董事长丁雄军:买不到茅台还吃不起冰激凌吗?
小米12S Ultra官网缺货!卢伟冰推荐小米13 Pro:影像也非常强
环球快讯:过去10年 全国130多个县第一次通上铁路
环球热门:2.5亿年前 96%的物种突然消失!中国学者有了重大发现
精彩看点:还在用20世纪90年代的破系统!美国航空巨头8天赔掉50个亿
ThreadLocal底层原理
焦点热文:小米13 Pro把单反相机技术塞入手机里!雷军:效果惊艳
AMD三颗新U齐发!锐龙9 7900、锐龙7 7700、锐龙5 7600图赏
暴雪国服代理谈判被曝进入"二选一"阶段:手游版权开发分成是核心
报道:SpaceX猎鹰重型火箭再次发射美军卫星:能抗核打击
环球今热点:在QEMU-KVM环境下部署Oracle 19.16 RAC
全球要闻:HTML超文本标记语言3
苹果中国官网上线智能家居板块:一个LED灯泡卖168元 贵吗?
世界实时:《三体》电视剧过审上微博热搜 网友:只求别魔改!
环球今日报丨去意已决?巴菲特再度减持比亚迪
全球快消息!真爱粉!苏州加油为抢一加11首发跑到上海:对新品非常期待
世界观速讯丨C++引用【cherno课程学习】
【天天报资讯】「年终总结」写了 3 年文章的我,昨天第一次露脸直播。
环球今日报丨【前端调试】- 利用 Performance 和 Memory 分析内存
热点!操作系统 — 精髓与设计原理(第一章 计算机系统概述)
世界播报:学习笔记——Mybatis映射文件根标签与子标签
全球即时看!又一豪华巨头败走中国 官网关停!长安终于可以独享车标了
环球新消息丨广告又来?Win11将在文件管理器显示“推荐内容”
AMD锐龙7000新U不讲武德:编号更高 频率反而更低
车企"英文+数字"的新车命名规则被吐槽无趣 不如中文
外星人M18首发!京东方推出18英寸480Hz笔记本屏
全球热议:java不同版本jdk切换
每日焦点!读博初始心境-求讨论
前沿热点:抖音2023年春节红包来了:分4亿 最高可得万元奖金
环球快看点丨彻底终结充电焦虑?韩国SK On新技术:汽车电池18分钟充满
世界微资讯!电竞手机要消亡!卢伟冰:有了Redmi K60就不需要电竞手机
国内演员指责电视收费乱象:大几千买的电视看不了 打开全要收费
NAT类型检测方案
世界热议:学习笔记——Mybatis核心配置文件概述及根标签
VisualStudio 使用 FastTunnel 辅助搭建远程调试环境
世界观焦点:“外星科技”加持!Redmi 12C支持双SIM卡+TF卡拓展:699元起
搜狐张朝阳谈工作意义:年轻人赚钱享乐的想法不对
同步小米13 Ultra!小米平板6/6 Pro来了:处理器、屏幕大升级
今晚20点整:京东年货红包重磅加码 最高9999元
360Hz超高刷也白菜价了 泰坦军团1ms电竞显示器到手1629元
火山引擎 DataTester:5 个优化思路,构建高性能 A/B 实验平台
环球新资讯:对话阿里云叔同:如何看待 2022 年云原生的发展,2023 年有哪些值得关注的技术?
全球新动态:字符串匹配算法综述
新资讯:网易云音乐用户画像资产治理及业务赋能
每日热议![概率论与数理统计]笔记:3.1 随机向量的分布
环球短讯!俄罗斯开发者1年拿不到钱!好好的微星AfterBurner被一场战争害死
盘点CES上让人耳目一新的小玩意:极具创意
参与美国“阿尔忒弥斯计划” 日本人将首次登陆月球:日期未定
2499元起 Redmi K60成了:京东好评率比iPhone 14更高
新动态:你能接受不?奔驰Smart精灵#1开启硬件订阅:座椅加热1299元
环球播报:软件开发入门教程网之C++ 引用
[笔记]斜率优化
HTML超文本标记语言2
时讯:股价暴跌后!特斯拉最大华裔散户天天“炮轰”马斯克
环球今热点:手慢真无了 码已不全!森马羽绒/棉服大促:一百多到手
世界热讯:美菱推出“杀新冠冰箱”:灭杀率高达99.9% 已过权威认证
全球时讯:PS5主机应该横放还是竖放引热议 索尼:都可以
热点评!配第四代i-MMD 东风本田新款英仕派e:HEV官图发布:真大号思域