POSIX lfind()/lsearch() 的性能比手动循环更好吗?

发布于 2024-09-18 07:55:13 字数 166 浏览 6 评论 0原文

执行 lfind/lsearch比检查每个项目直到匹配的典型循环解决方案表现更好?这些功能的存在有什么特殊的理由吗?

Do lfind/lsearch perform better than a typical looping solution that checks each item until it matches? Is there any special sauce/reason that these functions exist?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮生未歇 2024-09-25 07:55:13

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

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

Probably they are not more efficient that a homebrew version, maybe even a bit less since the comparison function can't be inlined.

But this is certainly not the point with them. They complete the API of the other search functions, in particular bsearch and tsearch.

贱人配狗天长地久 2024-09-25 07:55:13

措施!

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

因此,如果您需要知道,请尝试 lfind 和 homebrew 方法,并多次measure

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

Measure!

You can only know about performance by measuring. Things are definitely different on your computer and mine (I may even not have a POSIX compiant compiler cannot measure lfind myself). Thinks are different between different runs of a program.

So, if you need to know, try both the lfind and homebrew methods and measure several times.

Anyway ... C library functions may not have been written in C. If your lfind was written in Python I'd bet it would be slower than a homebrew method :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文