2011-01-25 51 views

Trả lời

2

microtime - Return timestamp Unix hiện tại với micro

<?php 
$time = microtime(TRUE); 

//...code here... 

print (microtime(TRUE)-$time). ' seconds'; 
24

Gọi microtime(true) chức năng để lấy thời gian hiện tại với độ phân giải milisecond.

<?php 
$startTime = microtime(true); 

/*stuff is going on*/ 

echo "Elapsed time is: ". (microtime(true) - $startTime) ." seconds"; 
+1

+1 Tôi sẽ trả lời như vậy. – Christian

+0

cảm ơn câu trả lời, nhưng việc thực hiện điều đó trong một khung công tác không đơn giản. bên cạnh đó, nó không chính xác bởi vì thời gian xử lý được sử dụng bởi khung chính nó không được tính là – jmint

+0

Tôi hy vọng bạn sẽ cần một thời gian trôi qua thực sự, không phải là thời gian trôi qua - 'thời gian khung'. Theo như thực hiện nó vào mã hiện tại đi, cách dễ nhất (không nhất thiết phải là tốt nhất) có thể được sử dụng một singleton, để có bộ đếm thời gian toàn cầu có thể truy cập. – Mchl

0

Bạn chỉ cần sử dụng thời gian chờ chuẩn của PHP và triển khai chức năng shutdown.

function say_goodbye() { 

    if (connection_status() == CONNECTION_TIMEOUT) { 
     ... do your special processing to save the process state here 
     ... then formulate a response for the browser 
    } 
} // function say_goodbye() 


register_shutdown_function("say_goodbye"); 

Lưu ý rằng bạn có thể thiết lập các chức năng tắt máy để chấp nhận các thông số

EDIT

function say_goodbye($controller1,$controller2) { 

    if (connection_status() == CONNECTION_TIMEOUT) { 
     ... do your special processing to save the process state here 
     ... then formulate a response for the browser 
    } 
} // function say_goodbye() 


$ctl1 = new DBController(); 
$ctl2 = new OPController(); 

register_shutdown_function("say_goodbye",$ctl1,$ctl2); 
+0

hmm, đề xuất của bạn rất thú vị nhưng tôi đang gặp vấn đề khi lưu cài đặt này bởi vì trong chức năng tắt máy tôi không thể truy cập vào các biến của bộ điều khiển khung của tôi – jmint

+0

, có thể giải quyết vấn đề này bằng cách sử dụng globals Tôi vẫn đang xem xét nó. thanks anyway :) – jmint

+0

Bạn cần phải chuyển các biến $ cho các bộ điều khiển đến chức năng tắt, có nghĩa là bạn chỉ có thể đăng ký nó sau khi chúng được khởi tạo ... xem chỉnh sửa. Tôi thực sự sử dụng phương pháp này để bẫy thời gian chờ và trả về một phản hồi được định dạng bởi outputController của tôi. –

0

Một trong những đoạn nhanh chóng và chính xác tôi có thể khuyên.

//Block of my complex code 
//... 

echo 'Exact time taken to run: ' . (microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']) . ' seconds'; 
Các vấn đề liên quan