Do POSIX lfind () / lsearch () eine bessere Leistung als manuell Looping?
Frage
lfind
/ lsearch
eine bessere Leistung als eine typische Looping Lösung, dass die Kontrollen jedes Element bis es passt? Gibt es eine spezielle Soße / Grund, dass diese Funktionen gibt es?
Lösung
Wahrscheinlich sind sie nicht mehr effizient, dass eine Homebrew-Version, vielleicht sogar ein bisschen weniger, da die Vergleichsfunktion nicht inlined werden kann.
Aber das ist sicherlich nicht der Punkt mit ihnen. Sie vervollständigen die API der anderen Suchfunktionen, insbesondere bsearch
und tsearch
.
Andere Tipps
Messen!
Sie können nur über die Leistung von Mess wissen. Die Dinge sind auf Ihrem Computer auf jeden Fall anders und ich (ich kann auch keine POSIX compiant Compiler messen kann nicht lfind
selbst hat). Thinks sind unterschiedlich zwischen verschiedenen Läufen eines Programms.
Also, wenn Sie wissen müssen, versuchen sowohl die lfind
und Homebrew-Methoden und Maßnahme mehrmals.
Wie auch immer ... C
Bibliotheksfunktionen können nicht in C
geschrieben wurden. Wenn Ihr lfind
in Python
geschrieben würde ich wette, es langsamer wäre als eine Homebrew-Methode:)