1,改变存储方式后,历史数据格式全部都要进行调整!会影响大批量用户
2,目前方式只会影响盘后分析处理情况,暂不会进行处理
1,改变存储方式后,历史数据格式全部都要进行调整!会影响大批量用户
2,目前方式只会影响盘后分析处理情况,暂不会进行处理
楼主这是算法问题。
限定数据然后读取,看似资源节省了但实际操作容易导致数据读取不足,也就是没冗余会崩的。
一般写法确实一口气全读取,然后只显示部分。 你看 readline 函数是每次读取一行,一行一行读取,全部读到内存。 f.open 函数根本就不管你多大直接全读取了,唯一就是你可以设定缓存是多少。
读取一半后在读取一半,效率其实不咋样的。
如果只是限定读取部分,然后在读取。 就意味open要开2次, 并且有个问题,前一次到底关闭还是打开? 每次open必须带一个close, 不能open,open,close模式。
你这样就相当于一个文件放到2个缓存。 实际占用内存是一样,但在程序内分2部分,导致对变量操作要跳来跳去。
O__O 当然我只写过300M数据运算, 2G的。。。我还真没写过。
楼主这是算法问题。
限定数据然后读取,看似资源节省了但实际操作容易导致数据读取不足,也就是没冗余会崩的。
一般写法确实一口气全读取,然后只显示部分。 你看 readline 函数是每次读取一行,一行一行读取,全部读到内存。 f.open 函数根本就不管你多大直接全读取了,唯一就是你可以设定缓存是多少。
读取一半后在读取一半,效率其实不咋样的。
如果只是限定读取部分,然后在读取。 就意味open要开2次, 并且有个问题,前一次到底关闭还是打开? 每次open必须带一个close, 不能open,open,close模式。
你这样就相当于一个文件放到2个缓存。 实际占用内存是一样,但在程序内分2部分,导致对变量操作要跳来跳去。
O__O 当然我只写过300M数据运算, 2G的。。。我还真没写过。
呀怎么说呢二次开发与前置开发时候是不同的,以前只写VBA,现在写python后才体会的。
调用数据其实不是“调用” 有个数据300M,你只要其中连续部分的150M (要是分块就麻烦)。
方法1, 一次读取内存后,在对读取变量分析挑出你要的
方法2,依据行读取文件,移动到指定也就是开始段A开始读入到内存存储。 但是前面你读取那些也是调入到内存无非就是后来数据把它废弃了。
从效率来说只要内存足够大,方法1比方法2更好。 因为默认你可能要是整个数据,然后对整个数据排列,没说下次不用啊,下次要用只要没close到文件变量就在内存。
方法2的问题是你一旦超标了,就是说我要一部分新数据延续下去,则立即就又要重新打开文件在读取一次。 不是从上次哪里读取下去,是重新读取。
虽然方法2可以利用指针记忆上次读取位置,但是下次数据申请未必就是这次数据刚好的后续,因此一般避免错误都是重新读取了。
当然我也希望只要给定数据段,毕竟我也要用金字塔定位时间段研究的。 但是就我目前编程知识我知道是一次读取后最有效率。
内存操作比对磁盘I/O效率高不是一点。