December 22, 2011

Some tip to improve performance PHP

1 - Không dùng các biến chưa khai báo.
Nếu chúng ta thực hiện phép tăng hoặc giảm ( ++, +=, --, -= ) cho 1 biến chưa khai báo trước thì nó chậm gấp 9, 10 lần so với việc ta khai báo nó xong mới thực hiện toán tử.

2 - Hạn chế tối đa việc gọi hàm trong vòng lặp.
Hàm sẽ được thực thi xuyên suốt vòng lặp. Đặc biệt không dùng for($i = 0; $i < count($arr); $i++)

3 - Không dùng mis-constant
$arr = array('test' => 1);
$arr[test] = 2; // Very slow
$arr['test'] = 2; // Nhanh gấp 7 lần so với cách trên

4 - Không ngăn chặn lỗi bằng @.
Cực kỳ chậm và tốn tài nguyên

5 - Không gọi các hàm magic call (__get, __set, __autoload)
Cực kỳ chậm

6 - Tránh không xài include_one, require_one.
Rất chậm và tốn nhiều tài nguyên nên dùng include, require. Tuyệt đối không dùng include_path

7 - Sử dụng toán tử so sánh === NULL nhanh hơn so với dùng is_null()
Theo kết quả benchmark thì việc dùng hàm is_null() sẽ chậm hơn dùng toán tử so sánh === NULL tới gấp 5 lần. Thực hiện thí nghiệm dựa trên thông số máy tính như sau: CPU intel core-i3, RAM 2GB, OS: window, WAMP: PHP 5.3.9
Iterations: 100000  (10 Runs)
 #  | NULL     | rel %  | is_null() | rel %  
----+----------+--------+-----------+--------
  1 |  0.02470 | 19.5 % |   0.12686 |  513.5%
  2 |  0.02276 | 17.9 % |   0.12696 |  557.9%
  3 |  0.02409 | 18.0 % |   0.13379 |  555.3%
  4 |  0.02239 | 17.9 % |   0.12509 |  558.6%
  5 |  0.02381 | 19.0 % |   0.12526 |  526.0%
  6 |  0.02351 | 18.2 % |   0.12904 |  548.9%
  7 |  0.02265 | 18.3 % |   0.12349 |  545.1%
  8 |  0.02233 | 18.6 % |   0.12019 |  538.2%
  9 |  0.02252 | 18.5 % |   0.12152 |  539.6%
 10 |  0.02293 | 18.8 % |   0.12191 |  531.7%

No comments:

Post a Comment