Hướng dẫn php execution time - thời gian thực hiện php

Th4 13, 2018

Hai G.

2ít nhất Đọc

Hướng dẫn php execution time - thời gian thực hiện php

  • Giới thiệu
  • Bạn cần gì?
  • Cách 1 – Cài WP Maximum Execution Time Exceeded plugin
  • Cách 2 – Sửa file .htaccess thủ công
  • Cách 3 – Đổi giá trị max_execution_time trong cPanel
  • Lời kết

Giới thiệu

Bạn cần gì?Fatal Error: maximum execution time of 30 seconds exceeded hoặc tương tự khi dùng WordPress? Lỗi này có nghĩa là PHP scripts đang cần nhiều thời gian thực thi hơn giới hạn nó đang dùng, vì vậy nó bị ngưng. Bài hướng dẫn này sẽ giúp bạn sửa lỗi trên website.

Bạn cần gì?

Cách 1 – Cài WP Maximum Execution Time Exceeded plugin

  • Cách 2 – Sửa file .htaccess thủ công

Cách 1 – Cài WP Maximum Execution Time Exceeded plugin

Cách 2 – Sửa file .htaccess thủ công

Cách 3 – Đổi giá trị max_execution_time trong cPanel

Cách 2 – Sửa file .htaccess thủ công

Cách 3 – Đổi giá trị max_execution_time trong cPanelFile Manager trong hosting control panel. Nếu bạn không chắc file vị trí chính xác

recordTime("What We Just Did")
3 ở đâu, bạn hãy tham khảo bài hướng dẫn chi tiết ở đây. Bạn sẽ cần điền vào dòng code sau ở bên dưới file .htaccess và Lưu lại:

php_value max_execution_time 60

Lời kết

Cách 3 – Đổi giá trị max_execution_time trong cPanel

Lời kếtSelect PHP Version.

Bạn có đang gặp lỗi Fatal Error: maximum execution time of 30 seconds exceeded hoặc tương tự khi dùng WordPress? Lỗi này có nghĩa là PHP scripts đang cần nhiều thời gian thực thi hơn giới hạn nó đang dùng, vì vậy nó bị ngưng. Bài hướng dẫn này sẽ giúp bạn sửa lỗi trên website.Switch To PHP Options.

Trước khi bắt đầu bài hướng dẫn này bạn cần chuẩn bị:max_execution_time. Thông thường, nó được đặt là 30 giây mặc định, vì vậy bạn có thể tăng lên thành 60 giây. Nhấn vào nút Apply để lưu thay đổi.

Quyền truy cập vào WordPress Administrator areamaximum execution time of 30 seconds exceeded nữa.

WordPress có một cộng đồng người dùng rất lớn vì vậy bạn sẽ có thể tìm thấy plugin phù hợp với nhu cầu của bạn. Đối với trường hợp này là tăng max_execution_time – nên bạn có thể cài đặt WP Maximum Execution Time Exceeded plugin để sửa lỗi. Nếu chưa biết cách cài plugin, bạn có thể xem qua bài này để cài plugins trong WordPress.

Plugin này sửa file .htaccess để tăng giá trị maximum execution time. Khi bạn đã cài plugin này xong, bạn không cần làm gì hết, mọi thứ đã được xử lý bởi plugin. Không có trang thiết lập cho plugin vì vậy nếu bạn không muốn plugin thay đổi .htaccess nữa thì chỉ cần xóa plugin này, .htaccess sẽ trở lại như lúc trước khi cài đặt plugin.max_execution_time để xử lý vấn đề maximum execution time of 30 seconds exceeded. Nếu bạn đang dùng gói shared hosting và không có giải pháp nào cho việc này bạn nên tìm nhà cung cấp hosting để xem lại giá trị execution time thực tế là bao nhiêu và giới hạn này có tăng được hay không.

Nếu bạn đã có nhiều plugin và không muốn cài thêm plugin bạn có thể tự sửa file .htaccess để sửa lỗi maximum execution time of 30 seconds exceeded (hoặc tương tự). Cách dễ nhất là sử dụng File Manager trong hosting control panel. Nếu bạn không chắc file vị trí chính xác

recordTime("What We Just Did")
3 ở đâu, bạn hãy tham khảo bài hướng dẫn chi tiết ở đây. Bạn sẽ cần điền vào dòng code sau ở bên dưới file .htaccess và Lưu lại:

Tôi nghĩ rằng tôi sẽ chia sẻ chức năng tôi đặt cùng nhau. Hy vọng rằng nó có thể giúp bạn tiết kiệm thời gian.

Nội dung chính ShowShow

  • Bắt đầu
  • Xác định thông tin đăng nhập Twilio của bạn
  • Đo thời gian thực hiện tập lệnh
  • Sự kết luận
  • Thời gian thực thi của mã được tính toán như thế nào?
  • Thời gian thực hiện PHP là gì?
  • Mã PHP được thực thi như thế nào?
  • Làm thế nào chúng ta có thể tăng thời gian thực hiện của tập lệnh PHP?

Đặt MAX_EXECUTY_TIME trong tệp cấu hình PHP của bạn thành số giây muốn cho phép các tập lệnh PHP của bạn thực thi ...

Mở PHP.Tệp INI sử dụng trình soạn thảo văn bản yêu thích của bạn.....

Đặt giá trị cho max_execut_time tính bằng giây.max_execut_time = 300. ....

Khởi động lại máy chủ web của bạn.$ sudo systemctl khởi động lại apache2 ..

$tRecordStart = microtime(true);
header("Content-Type: text/plain");
recordTime("Start");

function recordTime ($sName) {
  global $tRecordStart;
  static $tStartQ;
  $tS = microtime(true);
  $tElapsedSecs = $tS - $tRecordStart;
  $tElapsedSecsQ = $tS - $tStartQ;
  $sElapsedSecs = str_pad(number_format($tElapsedSecs, 3), 10, " ", STR_PAD_LEFT);
  $sElapsedSecsQ = number_format($tElapsedSecsQ, 3);
  echo "//".$sElapsedSecs." - ".$sName;
  if (!empty($tStartQ)) echo " In ".$sElapsedSecsQ."s";
  echo "\n";
  $tStartQ = $tS;
}

Tôi nghĩ rằng tôi sẽ chia sẻ chức năng tôi đặt cùng nhau. Hy vọng rằng nó có thể giúp bạn tiết kiệm thời gian.

recordTime("What We Just Did")

Nội dung chính Show

Bắt đầu

Xác định thông tin đăng nhập Twilio của bạn

//     0.000 - Start
//     0.001 - Something Else In 0.001s
//    10.779 - Really Long Operation In 10.778s
//    11.986 - A Short Operation In 1.207s
//    11.987 - Loop Cycle 0 In 0.001s
//    11.987 - Loop Cycle 1 In 0.000s
...
//    12.007 - Loop Cycle 299 In 0.000s

Đo thời gian thực hiện tập lệnh

Ban đầu nó được sử dụng để theo dõi thời gian của tập lệnh dựa trên văn bản, vì vậy đầu ra ở dạng văn bản. Nhưng bạn có thể dễ dàng sửa đổi nó thành HTML nếu bạn thích.

Nó sẽ thực hiện tất cả các tính toán cho bạn trong thời gian đã dành bao nhiêu thời gian kể từ khi bắt đầu tập lệnh và trong mỗi bước. Nó định dạng tất cả các đầu ra với 3 số thập phân của độ chính xác. (Xuống đến mili giây.)

Khi bạn sao chép nó vào đầu tập lệnh của mình, tất cả những gì bạn làm là đặt các cuộc gọi hàm thời gian lập sau mỗi phần bạn muốn thời gian.

<?php
for ($i = 1; $i <= 1000; $i++) {
    echo "Hello W3docs!";
}
?>

Sao chép cái này vào đầu tệp tập lệnh của bạn:

Để theo dõi thời gian trôi qua, chỉ cần làm:

Ví dụ:

<?php

// Starting clock time in seconds 
$start_time = microtime(true);
$a          = 1;

// Start loop 
for ($i = 1; $i <= 1000; $i++) {
    $a++;
}

// End clock time in seconds 
$end_time = microtime(true);

// Calculating the script execution time 
$execution_time = ($end_time - $start_time);

echo " Execution time of script = " . $execution_time . " sec";
?>

Đầu ra của ví dụ này sẽ hiển thị thời gian thực hiện của tập lệnh:

  Execution time of script = 1.6927719116211E-5 sec

Hàm microtime () của PHP được sử dụng để trả về dấu thời gian UNIX hiện tại. Nó trả về một chuỗi trong MSEC Sec. hình thức theo mặc định.

Vượt qua giá trị boolean dưới dạng tham số của phương thức này sẽ trả về thời gian hiện tại tính bằng giây.

Ban đầu, chức năng này được giới thiệu trong PHP 4. Bây giờ, nó hoạt động với tất cả các phiên bản mới nhất.

    Các nhà phát triển PHP mới có thể không nhận thức được rằng mỗi tập lệnh bạn chạy đều có 30 giây để hoàn thành. Nếu các yêu cầu API, giao dịch cơ sở dữ liệu và xử lý dữ liệu của bạn hoàn thành kịp thời, bạn sẽ trải nghiệm thời gian chờ máy chủ. Điều này là do max_execut_time của PHP giúp ngăn chặn các tập lệnh được bằng văn bản kém buộc máy chủ.

    Hầu hết các nhà phát triển sẽ dành thời gian giải quyết googling thay vì tập trung vào thực tế rằng hành vi này không phải là một lỗi. Trong thực tế, mọi người không nên chờ đợi cả phút hoặc nhiều hơn để trang của bạn tải hoặc xử lý để hoàn thành trong trình duyệt. Nó không phải là một trải nghiệm người dùng lý tưởng.

    Trong hướng dẫn này, chúng tôi sẽ học cách đo thời gian để gửi SMS với tin nhắn có thể lập trình Twilio để thực hiện ứng dụng tốt hơn. Khi kết luận, bạn sẽ học được cách:

    • Xây dựng một tập lệnh đơn giản để gửi SMS trong PHP
    • Sử dụng hàm microtime () php () để đo thời gian thực hiện tập lệnh
    • Đưa ra quyết định hiệu suất hơn với ứng dụng của bạn

    Bắt đầu

    Chúng tôi chỉ viết một kịch bản ngắn cho hướng dẫn này. Kết quả là, bạn sẽ chỉ cần:

    • Một tài khoản Twilio (nếu bạn không có tài khoản, ở đây, $ 10 để bắt đầu). Nếu bạn đã thiết lập tài khoản của mình, hãy đăng nhập để lấy tài khoản SID và mã thông báo của bạn và sao chép chúng vào một vị trí an toàn trên máy tính của bạn.Account SID and Auth Token and copy them to a secure location on your computer.Account SID and Auth Token and copy them to a secure location on your computer.
    • Nhà soạn nhạc (Trình quản lý phụ thuộc PHP), được cài đặt toàn cầu.

    Tại thời điểm này, giả định đang được thực hiện rằng bạn đã cài đặt PHP tại địa phương.

    Tạo một tập lệnh PHP mới được gọi là script-time.php ở vị trí bạn chọn. Nếu bạn trên một máy dựa trên Linux, bạn có thể sử dụng lệnh sau:script-time.php in the location of your choosing. If you’re on a linux-based machine, you can use the following command:script-time.php in the location of your choosing. If you’re on a linux-based machine, you can use the following command:

    Thêm trình soạn thảo vào dự án và khởi tạo tệp Composer.json mới sẽ cho phép chúng tôi thêm SDK Twilio vào dự án này.composer.json file which will allow us to add the Twilio SDK to this project.composer.json file which will allow us to add the Twilio SDK to this project.

    Thêm SDK Twilio cho PHP vào dự án:

    $ composer require twilio/sdk
    

    Bây giờ hãy mở script-thời gian.php trong trình chỉnh sửa mã yêu thích của bạn (hoặc IDE) và

    recordTime("What We Just Did")
    
    4 nó ở đầu tệp:script-time.php in your favorite code editor (or IDE) and
    recordTime("What We Just Did")
    
    4 it at the top of the file:
    $tRecordStart = microtime(true);
    header("Content-Type: text/plain");
    recordTime("Start");
    
    function recordTime ($sName) {
      global $tRecordStart;
      static $tStartQ;
      $tS = microtime(true);
      $tElapsedSecs = $tS - $tRecordStart;
      $tElapsedSecsQ = $tS - $tStartQ;
      $sElapsedSecs = str_pad(number_format($tElapsedSecs, 3), 10, " ", STR_PAD_LEFT);
      $sElapsedSecsQ = number_format($tElapsedSecsQ, 3);
      echo "//".$sElapsedSecs." - ".$sName;
      if (!empty($tStartQ)) echo " In ".$sElapsedSecsQ."s";
      echo "\n";
      $tStartQ = $tS;
    }
    
    1script-time.php in your favorite code editor (or IDE) and
    recordTime("What We Just Did")
    
    4 it at the top of the file:
    $tRecordStart = microtime(true);
    header("Content-Type: text/plain");
    recordTime("Start");
    
    function recordTime ($sName) {
      global $tRecordStart;
      static $tStartQ;
      $tS = microtime(true);
      $tElapsedSecs = $tS - $tRecordStart;
      $tElapsedSecsQ = $tS - $tStartQ;
      $sElapsedSecs = str_pad(number_format($tElapsedSecs, 3), 10, " ", STR_PAD_LEFT);
      $sElapsedSecsQ = number_format($tElapsedSecsQ, 3);
      echo "//".$sElapsedSecs." - ".$sName;
      if (!empty($tStartQ)) echo " In ".$sElapsedSecsQ."s";
      echo "\n";
      $tStartQ = $tS;
    }
    
    1

    Điều này sẽ xác định ứng dụng khách Twilio Rest và cung cấp nó để sử dụng để gửi SMS. Cho đến thời điểm này, đây là quá trình tiêu chuẩn để thêm SDK Twilio vào bất kỳ dự án PHP nào.

    Xác định thông tin đăng nhập Twilio của bạn

    Thông tin đăng nhập Twilio của bạn sẽ được yêu cầu thực sự kết nối với API Twilio. Để bắt đầu, hãy xác định ba biến mới

    recordTime("What We Just Did")
    
    5,
    recordTime("What We Just Did")
    
    6 và
    recordTime("What We Just Did")
    
    7 để giữ tài khoản SID, mã thông báo Auth và số điện thoại Twilio của bạn. Nếu bạn cần mua một số, bạn có thể làm như vậy từ bảng điều khiển Twilio.Account SID, Auth Token, and Twilio Phone Number respectively. If you need to purchase a number, you can do so from the Twilio console.Account SID, Auth Token, and Twilio Phone Number respectively. If you need to purchase a number, you can do so from the Twilio console.

    Thêm mã sau bên dưới Tuyên bố trước đó:

    $tRecordStart = microtime(true);
    header("Content-Type: text/plain");
    recordTime("Start");
    
    function recordTime ($sName) {
      global $tRecordStart;
      static $tStartQ;
      $tS = microtime(true);
      $tElapsedSecs = $tS - $tRecordStart;
      $tElapsedSecsQ = $tS - $tStartQ;
      $sElapsedSecs = str_pad(number_format($tElapsedSecs, 3), 10, " ", STR_PAD_LEFT);
      $sElapsedSecsQ = number_format($tElapsedSecsQ, 3);
      echo "//".$sElapsedSecs." - ".$sName;
      if (!empty($tStartQ)) echo " In ".$sElapsedSecsQ."s";
      echo "\n";
      $tStartQ = $tS;
    }
    
    5

    Lưu ý: Tài khoản của bạn không bao giờ nên được sử dụng trong môi trường sản xuất. Your Account SID should never be used in a production environment. Your Account SID should never be used in a production environment.

    Kịch bản này gần như đã sẵn sàng để gửi một tin nhắn văn bản. Tạo một biến

    recordTime("What We Just Did")
    
    8 mới để giữ một ứng dụng khách Twilio Rest mới được khởi tạo, được xác thực với thông tin đăng nhập của bạn.
    recordTime("What We Just Did")
    
    0

    Gửi SMS

    Một biến

    recordTime("What We Just Did")
    
    9 sẽ được thêm vào để ghi lại sự khởi đầu của quá trình gửi SMS. Nó sử dụng chức năng PHP
    recordTime("Something Else")
    //Do really long operation.
    recordTime("Really Long Operation")
    //Do a short operation.
    recordTime("A Short Operation")
    //In a while loop.
    for ($i = 0; $i < 300; $i ++) {
      recordTime("Loop Cycle ".$i)
    }
    
    0 tích hợp để ghi lại thời gian bắt đầu.
    recordTime("What We Just Did")
    
    1

    Tiếp theo, thêm mã sau để gửi tin nhắn văn bản mẫu:

    recordTime("What We Just Did")
    
    2

    Sau khi thay thế số điện thoại của bạn bằng số điện thoại thực tế của bạn để nhận tin nhắn, mã này có chức năng đầy đủ để truyền và SMS.

    Bây giờ hãy ghi lại khi cuộc gọi API hoàn tất, tính toán chênh lệch thời gian và hiển thị kết quả:

    recordTime("What We Just Did")
    
    3

    Đo thời gian thực hiện tập lệnh

    Đó là thời gian để kiểm tra tập lệnh của bạn bằng cách chạy tập lệnh trong dòng lệnh của bạn:

    Tôi sẽ khuyên bạn nên chạy điều này và ghi lại kết quả ít nhất ba lần.

    Mất bao lâu để gửi? Đối với tôi, đó là trung bình 0,33 giây.

    Hãy nhớ rằng, thời gian thực hiện tối đa của tập lệnh PHP là 30 giây. Tùy thuộc vào môi trường lưu trữ của bạn, bạn có thể hoặc không thể thay đổi giá trị này cho ứng dụng của bạn. Ngoài ra, xem xét những gì tốt nhất cho hiệu suất, bạn thực sự không nên để người sử dụng ứng dụng của bạn chờ đợi lâu hơn 30 giây để một kịch bản xử lý trong trình duyệt của họ.

    Hãy làm một số toán học.

    (30 giây / .33 giây cho mỗi tin nhắn) = 90 cuộc gọi API trước thời gian chờ mặc định. Điều này có nghĩa là nếu bạn có một mảng có 100 số, tập lệnh của bạn sẽ hết thời gian trước khi gửi.

    Sự kết luận

    Với kiến ​​thức này trong tay, giờ đây bạn có thể đưa ra quyết định sáng suốt hơn về việc xây dựng ứng dụng dựa trên truyền thông của mình. Có lẽ bạn cần phải tái cấu trúc mã của bạn? Có lẽ kịch bản nên được gọi không đồng bộ từ đầu trước với các yêu cầu AJAX. Dù bằng cách nào, bây giờ bạn có thể xây dựng một cách có chủ ý và hiệu quả hơn.

    Trong một bài đăng tiếp theo, tôi sẽ chỉ cho bạn cách xử lý 1000 tin nhắn trở lên trong cửa sổ 30 giây này bằng TWILIO thông báo.

    Marcus Battle là một người quản lý cấp cao của nhà phát triển Voices tại Twilio, nơi ông nhắc nhở và các nhà phát triển các cuộc biểu tình xây dựng tương lai của truyền thông. Anh ta có thể đạt được thông qua:

    • E-mail:
    • Twitter: @themarcusbattle
    • GitHub: https://github.com/themarcusbattle

Thời gian thực thi của mã được tính toán như thế nào?

1) Tạo một vòng lặp xung quanh Whatneed để đo, thực hiện 10, 100 hoặc 1000 lần trở lên. Đo thời gian thực hiện đến 10 msec gần nhất. Sau đó chia thời gian đó cho số lần vòng lặp được thực hiện. Nếu vòng lặp thực hiện 1000 thời gian sử dụng đồng hồ 10 msec, bạn sẽ có được độ phân giải 10 Lausc cho Theloop.

Thời gian thực hiện PHP là gì?

Một khía cạnh quan trọng của các chương trình PHP là thời gian tối đa được thực hiện để thực hiện tập lệnh là 30 giây.Giới hạn thời gian thay đổi tùy thuộc vào các công ty lưu trữ nhưng thời gian thực hiện tối đa là từ 30 đến 60 giây.between 30 to 60 seconds.between 30 to 60 seconds.

Mã PHP được thực thi như thế nào?

Có ba cách khác nhau để cung cấp cho CLI sapi mã PHP được thực thi:...

Nói với PHP để thực hiện một tệp nhất định.$ php my_script.php $ PHP -f my_script.php.....

Vượt qua mã PHP để thực thi trực tiếp trên dòng lệnh.....

Cung cấp mã PHP để thực thi thông qua đầu vào tiêu chuẩn (stdin) ..

Làm thế nào chúng ta có thể tăng thời gian thực hiện của tập lệnh PHP?

Đặt MAX_EXECUTY_TIME trong tệp cấu hình PHP của bạn thành số giây muốn cho phép các tập lệnh PHP của bạn thực thi ....

Mở PHP.Tệp INI sử dụng trình soạn thảo văn bản yêu thích của bạn.....

Đặt giá trị cho max_execut_time tính bằng giây.max_execut_time = 300. ....

Khởi động lại máy chủ web của bạn.$ sudo systemctl khởi động lại apache2 ..