【问题标题】:Do POSIX lfind()/lsearch() perform better than looping manually?POSIX lfind()/lsearch() 是否比手动循环执行得更好?
【发布时间】:2010-09-11 07:58:25
【问题描述】:

lfind/lsearch 的性能是否优于检查每个项目直到匹配的典型循环解决方案?这些功能的存在有什么特别的原因吗?

【问题讨论】:

    标签: c linux algorithm posix libc


    【解决方案1】:

    可能它们并不比自制版本更有效,甚至可能更低,因为无法内联比较函数。

    但这当然不是他们的重点。他们完成了其他搜索功能的API,特别是bsearchtsearch

    【讨论】:

    • 我在eglibc-2.11.1中阅读了lfind/lsearch的源代码,根本没有做任何特别的优化。正如您所说,无法内联是最大的问题。
    【解决方案2】:

    测量!

    您只能通过衡量来了解性能。您的计算机和我的计算机上的情况肯定不同(我什至可能没有 POSIX 兼容编译器无法测量 lfind 我自己)。程序的不同运行之间的想法是不同的。

    因此,如果您需要了解,请尝试lfind 和自制方法并测量 多次。

    无论如何...C 库函数可能没有写在C 中。如果你的lfind 是用Python 写的,我敢打赌它会比自制方法慢:)

    【讨论】:

      猜你喜欢
      • 2013-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      • 2016-02-02
      • 2014-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多