2013-03-04 4 views
6

के लिए असंगत लोडिंग समय मेरे पास JQuery द्वारा JQuery के $.ajax के माध्यम से एक PHP स्क्रिप्ट लोड किया जा रहा है।जेएस और PHP

$start = microtime(); // top most part of code 
// all other processes that includes AES decryption 
$end = microtime(); // bottom part of code 
file_put_contents('LOG.TXT','TIME IT TOOK: '.($end-$start)."\n",FILE_APPEND); 

यह कहीं 1 सेकंड से कम मापा जाता: मैं का उपयोग कर PHP स्क्रिप्ट के निष्पादन समय मापा जाता। PHP स्क्रिप्ट्स को प्रीपेन्ड/संलग्न नहीं किया गया है।

जे एस $.ajax कोड में, मैं द्वारा निष्पादन समय मापा जाता है

success: function(response) { 
    console.log(date('g:i:s a') + ' time received\n'); 
    // all other processes including AES decryption 
    console.log(date('g:i:s a') + ' time processed\n'); 
} 

समय मौके मिले और समय संसाधित के लिए ही है।

हालांकि, जब मैं Chrome डेवलपर टूल जाँच, यह दावा करता है कि PHP स्क्रिप्ट लगभग 8 सेकंड के लिए भरी हुई।

इन चीजों को कैसे मापने में गलत क्या हो सकता है? मुझे यकीन है कि PHP तेजी से लोड हो रहा है लेकिन क्रोम कैसे रिपोर्ट करता है कि इसमें 8 सेकंड से अधिक समय लगेगा?

मैं लोकलहोस्ट का उपयोग कर रहा हूं और मेरा वेब सर्वर तेज़ है और यह एकमात्र समय है जब मुझे इस समस्या का सामना करना पड़ा। अन्य सभी AJAX कॉल तेज़ हैं।

+1

अन्यथा आप तारों पर गणित कर रहे हैं सुनिश्चित करें कि आप चल बिन्दु 'microtime (सही)' उपयोग कर रहे हैं,। आपकी समस्या का समाधान नहीं हो सकता है, लेकिन कुछ ऐसा जो आप ध्यान रखना चाहते हैं। –

+0

इसे हल किया गया! मैंने इस पर दो घंटे बिताए। क्या आप उत्तर के रूप में अपनी प्रतिक्रिया पोस्ट कर सकते हैं? ताकि हम अपने प्रश्न को हल कर सकें। धन्यवाद! – rationalboss

उत्तर

2

पीएचपी अनुभाग में, सुनिश्चित करें कि आप microtime(true) उपयोग कर रहे हैं, ताकि आप तार की संख्या के बजाय चल बिन्दु के साथ काम कर रहे हैं। तारों पर घटाव का उपयोग गलत परिणाम प्राप्त कर सकता है।


उदाहरण: http://ideone.com/FWkjF2

<?php 

// Wrong 
$start = microtime(); 
sleep(3); 
$stop = microtime(); 
echo ($stop - $start) . PHP_EOL; // Prints 8.000000000008E-5 

// Correct 
$start = microtime(true); 
sleep(3); 
$stop = microtime(true); 
echo ($stop - $start) . PHP_EOL; // Prints 3.0000791549683 

?> 
+1

... और अब यह 8 सेकंड लौटाता है! धन्यवाद! :) – rationalboss

संबंधित मुद्दे