可以在每次更新时覆盖文件吗?
It is OK to overwrite a file on every update?
当我更新小的二进制文件或文本文件时,我通常会用新内容覆盖整个文件即使文件的一小部分被更改。我这样做是因为覆盖文件内容比跟踪文件中每一小块数据的位置更容易。
当文件大小和更新频率不是那么大时,我认为这不是问题,但在处理大文件和短更新周期时,我应该选择另一种文件更新技术。
我想知道什么时候应该开始担心我更新文件的方式。我应该使用什么标准来决定 整个文件覆盖更新 和更精细、更有效的技术?
决定使用哪种技术保存文件的主要标准是与之相关的成本。
您的更改是在本地完成还是必须通过网络传输?
对于本地设置,将文件保存到磁盘所需的时间是主要成本,也是基准测试的主要标准。
对于远程更改,您还应该考虑传输所需的时间和带宽消耗(可以使用增量更改,但它们会为发送方和接收方带来计算成本,并且在某些情况下可能会更大比原始文件)
这个问题没有灵丹妙药。最好的方法是用真实的测试场景对不同的解决方案进行基准测试。
还有一件事:你能控制被编辑的文件吗?如果它们用于存储应用程序的内部模型,并且它们经常更改,则更好的方法是更改数据模型(使用数据库/在多个文件之间拆分职责)。
当我更新小的二进制文件或文本文件时,我通常会用新内容覆盖整个文件即使文件的一小部分被更改。我这样做是因为覆盖文件内容比跟踪文件中每一小块数据的位置更容易。
当文件大小和更新频率不是那么大时,我认为这不是问题,但在处理大文件和短更新周期时,我应该选择另一种文件更新技术。
我想知道什么时候应该开始担心我更新文件的方式。我应该使用什么标准来决定 整个文件覆盖更新 和更精细、更有效的技术?
决定使用哪种技术保存文件的主要标准是与之相关的成本。
您的更改是在本地完成还是必须通过网络传输? 对于本地设置,将文件保存到磁盘所需的时间是主要成本,也是基准测试的主要标准。
对于远程更改,您还应该考虑传输所需的时间和带宽消耗(可以使用增量更改,但它们会为发送方和接收方带来计算成本,并且在某些情况下可能会更大比原始文件)
这个问题没有灵丹妙药。最好的方法是用真实的测试场景对不同的解决方案进行基准测试。
还有一件事:你能控制被编辑的文件吗?如果它们用于存储应用程序的内部模型,并且它们经常更改,则更好的方法是更改数据模型(使用数据库/在多个文件之间拆分职责)。