问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

内存拷贝 和 io 操作哪个更耗性能

发布网友 发布时间:2022-04-23 00:12

我来回答

2个回答

热心网友 时间:2023-07-04 11:53

  是需要消耗时间的。
  内存分配时,需要向系统进行申请,系统会对剩余连续内存做查询,查找到合适的内存块后,再对该块写一个已被使用的标识位。然后再把分配到的内存地址返回。
  内存删除的时候,是分配的一个反向过程,想系统申请,清除被使用标记为,系统将内存回收,返回。
  这个时间非常短,短到只有几十或几百微妙,但一定是有时间消耗的。
  在C++中,内存分配有两种途径,通过new/delete和通过malloc/free。
  其中new/delete要比malloc/free更高效。因为new和delete是C++的运算符,而malloc/free是C++的函数。前者的调用省去了函数调用相关操作。
  所以在C++编程中,要尽量使用new/delete来进行动态内存的分配/删除操作。

热心网友 时间:2023-07-04 11:54

假设我们有N块数据需要发送出去,下面分别描述2个方法:

方法1,将N数据合并到一个大缓存,再向系统发起IO请求--减少了系统调用次数,但是内存拷贝次数多;
方法2,将N块数据逐一提交给操作系统--减少了内存拷贝次数,但是系统调用次数多;

结论:如何对比这2种方法的优劣呢?取决于你的数据块平均字节数。
如果数据的平均长度很小,建议合并后一次发起IO请求,因为拷贝比系统调用更快;
如果数据的平均长度较大,建议分批次发起IO请求,因为系统调用比拷贝更快;
这个最优化长度,须根据硬件条件、系统类型来确定,即根据实测数据评判。
另外,linux下有read_v和write_v等IO不连续数据块的系统函数,借助它们可能一定程度优化系统IO性能。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
天秤男吃醋的八大表现 天秤座男生吃醋时的表现 人工授精之后注意什么 人授后需要卧床休息吗 ...经两个月没发工资了,我不想干了,老板不给钱怎么办? 新手玩《兰斯10》这款游戏的快速通关攻略是什么? 兰斯10怎么用食券快速刷SSR 兰斯10二周目7cp怎么达成 兰斯10大侵攻达成条件介绍 跳舞同手同脚叫什么来着 喷油嘴清洗机主要功能 C语言串拷贝(strcpy)和内存拷贝(memcpy)函数有什么不同? 这个mymemcpy()内存拷贝函数干嘛用: 用手机如何复制内存里的东西? 怎样复制电脑的东西到内存上 如何把手机一个内存卡内容完整复制到另一个内存卡里 微信的主要具体功能有哪些? 微信请假是否合理 微信营销怎么样能做最好? iPhone 5s 微信占用1.6G 是否合理?怎么处理? 微信新表情的正确打开方式被热议,你认为新表情是否好用? 哪些比较好? 微信是不是能发消息给对方 能跟好语音聊天或视频聊天 是不是就说明对方是你还好友 好朋友间的微信是否可以长久保持保留 代表建议大幅降低微信支付手续费,你认为该建议是否合理? 我是同,见到自己特别喜欢的类型,上去要微信是不是不太好? 你认为微信冻结客户零钱的做法是否合理,为什么? 现在微信营销是否好做? 全世界最好的社交软件是不是微信? win10无法添加win7的共享打印机,搜索显示找不到网络路径!求大神指点一 ... win7系统连接win10系统的共享打印机时提示错误代码? 怎么把一张内存卡上的文件数据完全复制到另一张内存卡 怎么将一个手机内存卡的内容复制到另一个手机里 怎样把手机内存卡的内容快速复制至电脑 如何把内存卡里的东西复制到电脑上? 怎么把内存卡的内容完全复制到另外张卡上??? 复制内存卡内用怎么复制? 库里7不打篮球平常穿行吗? linux如何复制内存 库里7GS减配了吗? 如何拷贝内存中的数据? 库里7gs系列和男款比,减配吗? 用Java或C写一个函数,完成内存之间的拷贝。 哪些篮球鞋适合在日常生活中穿? 安德玛库里7冬天能穿吗? 内存卡拷贝速度 库里7能不能在水泥地上打球? 帮我库里7球鞋辨真假? 库里7可以擦响吗? 库里七偏小吗? 最全的动漫合集老番新番冷番俱全