विशेष रूप से बालू के साथ डॉल्फिन को देखते हुए, यह अपने खोज डोमेन में प्रत्येक फ़ाइल के मेटाडेटा को देखने के लिए लगता है, भले ही आप एक साधारण फ़ाइल नाम खोज कर रहे हों। जब मैं file.soप्रक्रिया का पता लगाता हूं , तो मैं हर फाइल के लिए कॉल करता हूं lstat, getxattrऔर getxattrफिर ..प्रविष्टियों के लिए भी देखता हूं । ये सिस्टम कॉल मेटाडेटा को उस फ़ाइल के बारे में पुनः प्राप्त करता है जो फ़ाइल नाम से अलग स्थान पर संग्रहीत होती है (फ़ाइल नाम निर्देशिका सामग्री में संग्रहीत होता है, लेकिन मेटाडेटा इनोड में हैं )। फ़ाइल का मेटाडेटा क्वेरी करना कई बार सस्ता है क्योंकि डेटा डिस्क कैश में होगा, लेकिन मेटाडेटा को क्वेरी करने और मेटाडेटा को क्वेरी नहीं करने के बीच एक महत्वपूर्ण अंतर हो सकता है।
findबहुत अधिक चतुर है। यह अनावश्यक सिस्टम कॉल से बचने की कोशिश करता है। यह कॉल नहीं करेगा getxattrक्योंकि यह विस्तारित विशेषताओं के आधार पर खोज नहीं करता है। जब यह किसी निर्देशिका को ट्रेस कर रहा होता है, तो इसे lstatगैर-मिलान फ़ाइल नामों पर कॉल करने की आवश्यकता हो सकती है क्योंकि यह पुनरावर्ती खोज करने के लिए एक उपनिर्देशिका हो सकती है ( lstatयह सिस्टम कॉल है जो फ़ाइल मेटाडेटा को लौटाता है जिसमें फ़ाइल प्रकार जैसे कि नियमित / निर्देशिका / सिमलिंक /…) शामिल है। हालाँकि findइसका एक अनुकूलन है: यह जानता है कि एक निर्देशिका के पास अपनी लिंक गणना से कितनी उपनिर्देशिकाएँ हैं , और यह lstatएक बार कॉल करना बंद कर देता है क्योंकि यह जानता है कि यह सभी उपनिर्देशिकाओं का पता लगाया है। विशेष रूप से, पत्ती निर्देशिका में (कोई उपनिर्देशिका वाली निर्देशिका),findकेवल नामों की जाँच करता है, मेटाडेटा की नहीं। इसके अलावा कुछ फाइल सिस्टम निर्देशिका प्रविष्टि में फ़ाइल प्रकार की एक प्रतिलिपि रखते हैं ताकि findकॉल करने की आवश्यकता न हो, lstatयदि केवल वही जानकारी हो जिसकी उसे आवश्यकता है।
यदि आप findउन विकल्पों के साथ चलते हैं जिन्हें मेटाडेटा की जाँच की आवश्यकता होती है, तो यह अधिक lstatकॉल करेगा, लेकिन यह तब भी lstatकिसी फ़ाइल पर कॉल नहीं करेगा यदि उसे जानकारी की आवश्यकता नहीं है (उदाहरण के लिए क्योंकि फ़ाइल को पिछली स्थिति से बाहर रखा गया है नाम पर मेल)।
मुझे संदेह है कि अन्य जीयूआई खोज उपकरण जो findपहिया को फिर से संगठित करते हैं, कमांड लाइन उपयोगिता की तुलना में कम चतुर हैं जो अनुकूलन के दशकों से गुजरे हैं। डॉल्फिन, कम से कम, यदि आप "हर जगह" खोज के साथ डेटाबेस का उपयोग करने के लिए पर्याप्त चतुर हैं (सीमा के साथ जो यूआई में स्पष्ट नहीं है कि परिणाम पुराने हो सकते हैं)।