社区
Web 开发
帖子详情
关于如何避免重复读取大文件
zzxiaoma
2011-06-02 10:16:31
比如有一系列的方法需要读取大的文本或者excel文件。这个文件会随时变化,也就是不能第一次执行放内存就不读取。
一些方法都需要从文件里面取数据,如何才能更有效率的写代码呢?
...全文
219
13
打赏
收藏
关于如何避免重复读取大文件
比如有一系列的方法需要读取大的文本或者excel文件。这个文件会随时变化,也就是不能第一次执行放内存就不读取。 一些方法都需要从文件里面取数据,如何才能更有效率的写代码呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
数字巫师
2011-06-03
打赏
举报
回复
这个还是看你的文件存储数量和文件大小。
若文件不算太大(每个<100K),数量不太大(少于几万个左右)是可以考虑直接存储在数据库中的。
此时用Hibernate二级缓存监控更新足够了。
如果太多和太大,就只能放在文件系统中自己写监控,自己写缓存,还要注意监控点不要遗漏
cscxxx
2011-06-03
打赏
举报
回复
这关系到商业逻辑也就是业务层面的问题
LZ确认在读的时间点是不是文件没有变动?
是否将整个资料丢到数据库请改动也到系统上进行修改?数据库够大?
如果使用缓存多久更新一次?缓存够大?
工作人员可容忍读取时间?
总之请lz列出一些问题和答案就可以选取更适合的解决方法
安心逍遥
2011-06-03
打赏
举报
回复
IE删除一下缓存,祝你好运
Inhibitory
2011-06-03
打赏
举报
回复
[Quote=引用 7 楼 zzxiaoma 的回复:]
引用 4 楼 inhibitory 的回复:
现用现读
现用现读的话那还是需要重复的去读
[/Quote]
解决重复读就是缓存的工作了
穆大叔
2011-06-02
打赏
举报
回复
也想知道,帮顶!!
zzxiaoma
2011-06-02
打赏
举报
回复
那就是说还是需要用缓存来解决这个问题?
朱超ZhuChao.Tech
2011-06-02
打赏
举报
回复
[Quote=引用楼主 zzxiaoma 的回复:]
比如有一系列的方法需要读取大的文本或者excel文件。这个文件会随时变化,也就是不能第一次执行放内存就不读取。
一些方法都需要从文件里面取数据,如何才能更有效率的写代码呢?
[/Quote]
hibernate 那個3級緩存(查詢緩存)。
zzxiaoma
2011-06-02
打赏
举报
回复
[Quote=引用 5 楼 zhouyusunquan 的回复:]
给文件一个版本,当更新之后版本加一,这样去判断,如果版本未变,则从内存中读取,如果变了,则重新读取,这样也可以避免不停的去读
[/Quote]
更新文件我并不知道什么时候更新,文件更新程序不能修改
zzxiaoma
2011-06-02
打赏
举报
回复
[Quote=引用 4 楼 inhibitory 的回复:]
现用现读
[/Quote]
现用现读的话那还是需要重复的去读
zzxiaoma
2011-06-02
打赏
举报
回复
[Quote=引用 3 楼 watermarkmms 的回复:]
肯定用缓存,自己写个静态的map,把内容读进去,文件修改的时候,把map内容也修改
[/Quote]
那岂不是要把读出的文件和map比较?因为不知道什么时候文件被修改,也不知道修改的是什么。那就需要把文件再读一变
zhouyusunquan
2011-06-02
打赏
举报
回复
给文件一个版本,当更新之后版本加一,这样去判断,如果版本未变,则从内存中读取,如果变了,则重新读取,这样也可以避免不停的去读
Inhibitory
2011-06-02
打赏
举报
回复
现用现读
watermarkmms
2011-06-02
打赏
举报
回复
肯定用缓存,自己写个静态的map,把内容读进去,文件修改的时候,把map内容也修改
vue大
文件
读取
部分内容,
避免
重复
加载大
文件
,造成流量浪费
文章介绍了如何使用Axios模块仅获取PCD
文件
的头部分(如版本信息)以减少网络流量,通过检查与本地缓存的版本一致性来决定是否加载整个
文件
。
【Python】实现对大
文件
的增量
读取
本文介绍了一种高效的Python大
文件
增量
读取
方法,利用
文件
指针
避免
重复
读取
,减少内存消耗,并提供了一个使用生成器的示例代码。
java读
文件
内存溢出_完美解决java
读取
大
文件
内存溢出的问题
本文介绍了如何在Java中处理大
文件
,以
避免
内存溢出。传统方式是将整个
文件
内容加载到内存中,但这可能导致OutOfMemoryError。文章推荐使用Scanner和Apache Commons IO的LineIterator,这两种方法可以按行
读取
文件
,只保留当前处理的行,从而减少内存消耗。这些策略确保了在不
重复
读取
文件
且不耗尽内存的情况下,有效地处理大
文件
。
Java高效
读取
大
文件
(转)
本文介绍了一种在不
重复
读取
与不耗尽内存的情况下处理大
文件
的方法,包括使用Java的Scanner类、Apache Commons IO库的LineIterator,以及如何
避免
一次性加载
文件
到内存中,从而实现高效
读取
。
Web 开发
81,111
社区成员
341,726
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章