为什么不使用查找优化?

泽明戈尔

我在手册和信息页了解优化水平段的find命令,我不明白为什么我不能用最积极的优化水平。

我发现的唯一相关的句子是(来自man find版本4.4.2):

相反,随着时间的流逝,可以以较低的优化级别启用被证明是可靠,强大和有效的优化。

findutils测试套件在每个优化级别上对find运行所有测试,并确保结果相同。

如果我理解得很好,那是关于find通过findutils证明正确行为的证明,但是,该测试套件可确保所有优化级别都给出相同的结果。

凯文

您错过了这句话:

基于成本的优化器对任何给定测试成功的可能性有固定的认识。

这意味着如果你有高度非典型内容的目录(如大量的命名管道和极少数的“常规”文件),优化实际上可能恶化假设您的查询的性能(在这种情况下-type f更可能比成功-type p的时候反之亦然)。在这种情况下,最好不进行手动优化,这只有在-O1时才可能实现-O2

即使不考虑这个问题,基于成本的优化器的固定成本也很难确定。涉及多个硬件和软件(硬盘,内核,文件系统),它们各自进行一些缓存和优化。结果,很难预测不同操作的成本,即使相对于彼此而言也是如此(例如,我们知道readdir(2)比便宜stat(2),但是我们不知道便宜多少)。这意味着即使假定典型的文件系统内容,也不总是保证基于成本的优化可以产生最佳的优化。较低的优化级别使您可以通过反复试验手动调整查询,这可能更加可靠(如果比较费力的话)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么不使用查找优化?

来自分类Dev

为什么不使用指针数组来优化链接列表,而使用跳过列表呢?

来自分类Dev

为什么优化器不使用我唯一的过滤索引?

来自分类Dev

为什么不使用键的最左侧子集来优化此ORDER BY?

来自分类Dev

为什么不使用setXXXSize()?

来自分类Dev

为什么不使用@messages?

来自分类Dev

为什么不使用UASP

来自分类Dev

在RHEL 7上使用bash shell-为什么不使用-exec时查找更多文件?

来自分类Dev

为什么SQL Server Optimizer不使用CHECK约束定义来查找包含行的表?

来自分类Dev

为什么SQL Server Optimizer不使用CHECK约束定义来查找包含行的表?

来自分类Dev

为什么使用NSEnumerationReverse而不使用NSEnumerationForward

来自分类Dev

为什么堆栈使用数组,为什么不使用链表

来自分类Dev

为什么MongoDB不使用索引交集?

来自分类Dev

为什么不使用PictureBox控件?

来自分类Dev

为什么这里不使用LINQ ToList?

来自分类常见问题

为什么不使用S :: x?

来自分类Dev

为什么不使用Xcode编译测试?

来自分类Dev

为什么不使用@RequestParam而不是@ModelAttribute

来自分类Dev

为什么在解组期间不使用ObjectFactory?

来自分类Dev

为什么不使用golang WSGI实现

来自分类Dev

为什么Postgres不使用索引?

来自分类Dev

为什么MongoDB不使用索引交集?

来自分类Dev

为什么此查询不使用索引?

来自分类Dev

Drools为什么不使用Java 8?

来自分类Dev

为什么不使用Bootstrap 2.3.2?

来自分类Dev

为什么EntityFramework不使用我的谓词?

来自分类Dev

为什么不使用GOTO语句?

来自分类Dev

为什么我不使用100%?

来自分类Dev

HyperLogLog交集:为什么不使用min?

Related 相关文章

热门标签

归档