Công cụ thành viên

Công cụ trang web


programming:optimize

Đây là một phiên bản cũ của tài liệu!


  • Nếu có thể, thay print bằng echo vì echo nhanh hơn print
  • Thay vì viết:
echo "abcd" . $var . "fdfdfdf";

Nên viết:

 <code php>echo "abcd", $var, "fdfdfdf";</code>

(Tức là thay dấu chấm bằng dấu phẩy). Kết quả sẽ nhanh hơn.

  • Nên sử dụng unset đối với các biến tạm thời đã xử lý xong để giải phóng bộ nhớ (Chỉ áp dụng cho các biến toàn cục. Các biến cục bộ được xóa tự động). unset chỉ giải phóng bộ nhớ khi biến không bận. Còn null ($variable = null) ngay lập tức giải phóng bộ nhớ, nhưng biến thì vẫn được giữ lại với giá trị null (chỉ chiếm 72bytes của bộ nhớ).
  • Nếu biết chắc 1 file nào đó chưa được kết nối và muốn được kết nối thì nên dùng require thay vì dùng require_once (vì require_once đòi hỏi PHP kiểm tra xem file đã kết nối hay chưa nên tốn thêm thời gian đợi).
  • Đường dẫn đến file muốn kết nối qua require hay include phải là đường dẫn đầy đủ, không phải đường dẫn tính từ thư mục gốc của site (nghĩa là phải tương tự như:
    require ( NV_ROOTDIR . "/includes/constants.php" );
  • Thay vì dùng time() để xác định thời gian thực, có thể dùng $_SERVER[’REQUEST_TIME’] hoặc NV_CURRENTTIME trong NukeViet.
  • Hạn chế dùng dấu @ để ẩn lỗi (vì nó sẽ tiêu tốn thêm thời gian xử lý).
  • $row['id'] (có dấu nháy đơn) nhanh hơn là $row[id] (không có dấu) 7 lần vì nếu không hệ thống sẽ mất thêm công kiểm tra xem id có phải là 1 hằng hay không.
  • Không chèn hàm vào vòng for kiểu như:
    for( $x=0; $x < count( $array ); $x ++ )

    , thay vào đó nên viết là:

    for( $x=0, $count = count( $array ); $x < $count; ++ $x )

Vì nếu để như phương án đầu thì trong mỗi vòng quay của for, hệ thống sẽ lại thực thi hàm count($array) thêm 1 lần nữa (trong khi đó giá trị của nó là bất biến)

Tương tự, thay vì viết:

foreach ( array_keys( $new_funcs ) as $func )

Hãy viết

$array_keys = array_keys( $new_funcs );
foreach ( $array_keys as $func )
  • Trong 1 hàm, không nên gọi các biến bằng global nếu như không sử dụng đến. Hay nói cách khác, càng nhiều biến được gọi qua global thì quá trình thực thi càng chậm, không quan trọng là ta có dùng đến nó hay không. Ví dụ:
function abc()
{
	global $a, $b, $c;
	return $a + $b;
}
 
$a = 3;
$b = 9;
$c = 12;
 
abc();

(thừa $c)

  • Hạn chế truyền dữ liệu bằng global, ví dụ: thay vì viết:
<code php>function abc()
{
global $a;
echo $a;
}
$a = "abc";
abc();
</code>
Nên viết:
<code php>function abc( $a )
{
echo $a;
}
$a = "abc";
abc($a);
</code>
programming/optimize.1331493466.txt.gz · Sửa đổi lần cuối: 2012/03/12 16:17 (sửa đổi bên ngoài)