lim*_*gni 8 javascript csv file node.js electron
我正在使用Atom/Electron构建一个基于数据对视频进行可视化的应用程序.每个视频都有一个相应的CSV文件,其中包含每个帧的信息.视频大约100分钟,因此文件有足够的数据!
我遇到的问题是加载和解析文件需要几秒钟.大多数时候这不是问题.但我需要制作部分视频的播放列表,每次更改视频时加载整个CSV文件都不是一个可行的选择.
我一直在寻找文件流选项作为fast-csv,但我没有设法开始阅读文件的任意部分.
编辑:来自FS文档.在这种情况下,问题是如何知道哪个字节对应于文件中我想要的位置?
options可以包括start和end值,以从文件而不是整个文件中读取一系列字节.开始和结束都是包含性的,从0开始.
对于这种情况,您认为哪种方法更好,性能最好?
具体来说:
有没有办法从CSV文件的任何部分开始读取流?
您是否认为有另一种存储方法可以让我更好地解决这个问题?
更新:
最后,我通过将数据存储在二进制格式的文件中来解决这个问题.因为我知道文件有多少列,所以我可以直接从文件段中读取,而不会影响性能.
根据我的评论,Sqlite似乎就是您所寻找的。从长远来看,它可能不是您的永久解决方案,但当您决定是否要坚持使用它或编写自己的解决方案时,它肯定会暂时起作用。
Sqlite 的内部工作原理
Sqlite 针对核心进行了优化,但它具有三个主要功能,使其执行速度比普通磁盘读取速度更快,尤其是 CSV 文件:
如果您真的有兴趣了解所有这些内容的全部范围,我找不到比Julia Evans 的这篇精彩博客文章更好的解释了。
可能的缺点
除了内部工作之外,Sqlite 还被设计为在用户计算机上工作的客户端。如果这不是一个可行的解决方案,则可以采取一些解决方法。例如,Sqlite 可以用作 Web 服务器,但它在独立或混合安装中确实表现最佳。还要记住每个客户的计算机都是不同的。一台计算机处理记录的速度可能比另一台计算机快,但通常您无需担心,因为客户端计算机通常负载很小。
概括
Sqlite 可以满足您的需要,但可能需要一些作业才能以您需要的方式进行设置。例如,Sqlite4java 很容易安装,但学习起来很混乱,因为他们的文档太差了;不过 Stack Overflow 帮助我度过了难关。Sqlite 也是一种使用它并且忘记它的安装类型,所以回答你的问题,它会像蛋糕一样每秒处理 25 行,你不需要担心只优化你自己的代码。
归档时间: |
|
查看次数: |
5105 次 |
最近记录: |