【发布时间】:2022-04-18 01:41:13
【问题描述】:
我在 twisted python 中使用基于事件循环的服务器来存储文件,我希望能够根据文件的可压缩性对文件进行分类。
如果他们从压缩中受益的可能性很高,他们会转到打开 btrfs 压缩的目录,否则他们会转到其他地方。
我不需要确定 - 80% 的准确度就足够了,而且会节省大量磁盘空间。但由于也存在 CPU 和 fs 性能问题,我不能只保存所有压缩文件。
文件为低兆字节。如果不使用大量 CPU 并过度延迟事件循环或重构压缩算法以适应事件循环,我无法测试压缩它们。
是否有任何最佳做法可以快速估算可压缩性?我想出的是从文件开头提取一小块(几 kB)数据,对其进行测试压缩(可能有可以容忍的延迟),然后以此为基础做出决定。
有什么建议吗?提示?我的推理和/或问题有缺陷?
【问题讨论】:
-
只是为了说明这一点,您没有提到您计划使用的压缩算法。话虽如此,我认为如果不至少检查一次文件,您将无能为力
-
为什么不能使用渐进式压缩?
-
压缩一小部分不会有帮助:如果文件的其余部分只是从这部分的副本中制作的,那么压缩将很容易。恐怕唯一好的解决方案是尝试压缩整个文件。
-
如何将所有内容保存到未压缩目录中,然后在后台线程中将内容迁移到压缩目录中?在将迁移发布回其他线程之前,迁移器可以检查是否已实现可接受的压缩。
标签: python compression twisted