社区
C++ 语言
帖子详情
为什么用File*数组来回切换并移动读取性能差?
topgun
2008-03-28 12:59:57
我有一个FILE*的指针数组,文件是一直保持打开读状态,程序来换切换并偏移指针到不同位置读取定长,在一台UNIX机上运行效率可以,在另外一台机器上性能差呢?
...全文
68
6
打赏
收藏
为什么用File*数组来回切换并移动读取性能差?
我有一个FILE*的指针数组,文件是一直保持打开读状态,程序来换切换并偏移指针到不同位置读取定长,在一台UNIX机上运行效率可以,在另外一台机器上性能差呢?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
topgun
2008-03-28
打赏
举报
回复
说的也不对,我是在class外面定义了一个全局的File* g_FileTmp,
然后g_FileTmp=m_FilesArry[0];
之后在读取的时候用这个全局变量就快,难道要将m_FilesArry[]定义成全局的?之前我是在class类里头定义的,这似乎没有什么影响吧。
topgun
2008-03-28
打赏
举报
回复
而且,
我试过这样的代码:
fseek(m_FilesArry[0], ulOffset , SEEK_SET);
fread(&_Info,sizeof(_Info),1,m_FilesArry[0]) ; 我把这儿的读取写死成一直读第一个文件指针执行要快很多。
topgun
2008-03-28
打赏
举报
回复
难道是程序其它地方干扰到了?Unix c/c++程序跟windows下有点怪,有时候其它地方的越界会导致程序不按理出牌。
珍惜生命远离CPP
2008-03-28
打赏
举报
回复
机器的问题吧
topgun
2008-03-28
打赏
举报
回复
FILE* pFileTmp = m_FilesArry[iFileSeq];
fseek(pFileTmp, ulOffset , SEEK_SET);
//fread(&_Info,sizeof(_Info),1,pFileTmp) ; 我把这行注释掉非常快,所以说就是这儿的问题。
困了很多天,不太理解。
wsk528
2008-03-28
打赏
举报
回复
理论上应该是没有问题的吧,或许跟系统的环境或者硬件有关系。
相关推荐
手机站
移动
端手机触屏TAB菜单
来回
切换
手机站
移动
端手机触屏TAB菜单
来回
切换
移动
端window.history.back()无效的替代方案
移动
端使用window.history.back()无法返回上一页,网上搜到的解决方法是 window.location.href = document.referrer; 但是如果是在两个页面
来回
切换
几次,返回时就会陷入无限循环。 没办法,只能自己动手了,自定义一套解决方案。 解决思路是把访问过的url放到
数组
里面,再存储到localStorage里面,返回时从里面
读取
最后一个url,
读取
后再把最后一个url移除。具体实现如下 //历史记录 var jndx_currenturl = win
HashMap等数据结构简析
ArrayList
数组
的实现,连续的存储空间,随机
读取
快,增删
性能
差
,每次扩容都比较耗
性能
LinkedList 双向链表实现,随机
读取
性能
不如ArrayList,增删
性能
好。forEach
读取
性能
远好for循环,get(index)有个查找过程: /** * Returns the (non-null) Node at the specified element index...
ArrayList源码
ArrayList优点: 随机读
性能
很高,因为底层是基于
数组
实现,可以通过get(i)寻址快速
读取
获取元素个数
性能
很高 arrayLis天生按元素插入顺序排序 ArrayList缺点: 在扩容时需要从旧
数组
把元素拷贝到新
数组
,
性能
很
差
在随机插入时会导致插入点之后的元素在
数组
中
移动
,
性能
也很
差
ArrayList使用场景及使用注意事项: 在new ArrayList时最好根据业务场景进行容量的初始化,避免在之后的Add操作时触发
数组
的扩容,进而提高使用
性能
如果有频繁的add(i,e)的操作则不建议使用
协程和异步编程2
2.协程的意义 通过学习,我们已经了解到协程可以通过一个线程在多个上下文中进行
来回
切换
执行。 但是,协程
来回
切换
执行的意义何在呢?(网上看到很多文章舔协程,协程牛逼之处是哪里呢?) 计算型的操作,利用协程
来回
切换
执行,没有任何意义,
来回
切换
并保存状态 反倒会降低
性能
。 IO型的操作,利用协程在IO等待时间就去
切换
执行其他任务,当IO操作结束后再自动回调,那么就会大大节省资源并提供
性能
,从而实现异步编程(不等待任务结束就可以去执行其他代码)。 2.1 爬虫案例 例如:用代码实现下载 url_list 中的图
发帖
C++ 语言
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
6.3w+
社区成员
25.0w+
社区内容
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
帖子事件
创建了帖子
2008-03-28 12:59
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下