मैंने दोनों कार्यों की गति की तुलना करने और मापने के लिए कुछ परीक्षण किए हैं। is_file कई गुना तेजी से file_exists से (मैं दोनों के लिए 10000 पुनरावृत्तियों प्रयुक्त) हो रहा है। मुझे आश्चर्य है कि क्या PHP या ओएस इन कार्यों के लिए कुछ कैश का उपयोग करते हैं या हमेशा एचडीडी तक पहुंचते हैं? मुझे पता नहीं लगता है, लेकिन मुझे आश्चर्य है कि ...is_file/file_exists प्रदर्शन और कैश
मैं इस कोड का इस्तेमाल किया:
<?php
$time = microtime();
$time = explode(' ', $time);
$begintime = $time[1] + $time[0];
for($i=0;$i<10000;$i++)
file_exists('/Applications/MAMP/htdocs/index.php');
$time = microtime();
$time = explode(" ", $time);
$endtime = $time[1] + $time[0];
$totaltime = ($endtime - $begintime);
echo 'PHP parsed this in ' .$totaltime. ' seconds.</br>';
$time = microtime();
$time = explode(" ", $time);
$begintime = $time[1] + $time[0];
for($i=0;$i<10000;$i++)
is_file('/Applications/MAMP/htdocs/index.php');
$time = microtime();
$time = explode(" ", $time);
$endtime = $time[1] + $time[0];
$totaltime = ($endtime - $begintime);
echo 'PHP parsed this in ' .$totaltime. ' seconds.</br>';
?>
आप एक तंग पाश (जहां इस आशय का अनुरोध समय पर हावी होगा) में यह कई बार कर रहे हैं? यदि नहीं, तो मैं इसके बारे में चिंता नहीं करता जबतक कि आप सुनिश्चित नहीं हैं कि यह आपको एक प्रदर्शन समस्या का कारण बन रहा है ... याद रखें कि 'समयपूर्व अनुकूलन सभी बुराई की जड़ है ... जब तक आप जानते हैं कि यह कोई समस्या नहीं है, तब तक अर्थपूर्ण रूप से बेहतर विकल्प का उपयोग करें और फिर तब अनुकूलित करें और केवल तभी ... – ircmaxell
दरअसल, is_file() file_exists() से 10 गुना तेज है! बस कोशिश की, और यह सच है। – forthrin
यदि यह किसी को भी मदद करता है तो हम जोड़ सकते हैं कि file_exists() दोनों निर्देशिकाओं और फ़ाइलों के लिए सत्य वापस आ जाएंगे, जहां is_file() केवल एक फ़ाइल है (और निश्चित रूप से मौजूद है) सत्य वापस आ जाएगा। – aesede