> 백엔드 개발 > PHP 튜토리얼 > php7과 php5의 차이점은 무엇입니까? php5와 php7의 비교

php7과 php5의 차이점은 무엇입니까? php5와 php7의 비교

不言
풀어 주다: 2023-04-03 16:42:01
원래의
39701명이 탐색했습니다.

이 기사에서는 php7과 php5의 차이점을 소개합니다. php5와 php7의 비교에는 특정 참고 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

PHP7이 출시됩니다

PHP7이 공식 출시된 지 1년 반이 지났습니다. 처음 출시되었을 때 이전 버전보다 몇 배 더 빠르다고 주장했으며, 다양한 오픈 소스 프레임워크의 속도와 효율성을 자랑했습니다. 또는 PHP7에서 실행되는 시스템이 여러 번 증가했습니다. 어쨌든 미디어와 개발자 모두 불길을 부채질하고 있습니다. 아니, 그들은 칭찬으로 가득 차 있어야 합니다.
네가 아무 말 없이 조용히 멋있는 모습 지켜볼게.

일반적으로 나는 함정에 빠지고 싶지 않기 때문에 휴대폰 시스템을 마지막으로 업그레이드하는 사람입니다. 결국 iOS 및 Android와 같은 시스템에는 세계에서 가장 많이 해킹된 언어는 말할 것도 없고 버그가 있을 것입니다. .

오늘 PHP7이 전설처럼 멋진지 확인할 시간이 왔습니다.

두 가지 PHP 버전 설치

http://www.php.cn/ 최신 버전의 PHP7이 이미 제공되므로 직접 다운로드할 수 있습니다.
PHP5와 PHP7(PHP6는 폐기되었으며 고민스러운 1s)의 성능을 테스트하기 위해 서로 다른 디렉토리에 두 개의 PHP 버전을 설치했습니다.

설치 과정은 생략됩니다. 소스코드 설치나 패키지 관리 도구 설치와 상관없이 본인의 경로만 기억하시면 됩니다.

PHP7:

# /usr/local/php7/bin/php -v
PHP 7.1.5 (cli) (built: May 13 2017 23:36:41) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
로그인 후 복사

PHP5:

# /usr/bin/php -v
PHP 5.6.30 (cli) (built: Jan 19 2017 22:31:39) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
로그인 후 복사

환경 설명: 최상의 테스트 결과를 보장하기 위해 이 테스트는 실제 상황에 더 가까운 프로덕션 환경에서 직접 수행되었습니다.
운영 체제: CentOS 7.2 64비트
기본 구성: 1코어 1GB 1Mbps
호스트 브랜드: Tencent Cloud

PHP7과 PHP5 간의 경쟁

1 순수 PHP 스크립트 테스트

vim test.php

rreee

PH P5 버전 테스트:

$arr = array();
for ($i = 0; $i < 500000; $i++) {
        $arr[$i] = $i;
}

$tmp = array();
foreach ($arr as $i) {
    if ($i % 2 == 0) {
        $is_exists = array_key_exists($i, $arr);
        if ($is_exists) {
           array_push($tmp, $i);
        }
    }
}
로그인 후 복사

PHP7 버전 테스트:

time /usr/bin/php test.php 
real    0m0.301s
user    0m0.239s
sys     0m0.050s
--------------------------
time /usr/bin/php test.php
real    0m0.310s
user    0m0.241s
sys     0m0.054s
--------------------------
time /usr/bin/php test.php
real    0m0.289s
user    0m0.238s
sys     0m0.050s
로그인 후 복사

순수 PHP 스크립트 테스트를 통해 php7의 성능이 3~4배 향상되었다는 데이터를 보면 알 수 있습니다.

2. PHP 데이터베이스 작동 테스트

먼저 사용자 테이블을 만듭니다:

time /usr/local/php7/bin/php test.php

real    0m0.087s
user    0m0.063s
sys     0m0.024s
-------------------------------------
time /usr/local/php7/bin/php test.php

real    0m0.106s
user    0m0.073s
sys     0m0.033s
--------------------------------------
time /usr/local/php7/bin/php test.php

real    0m0.083s
user    0m0.061s
sys     0m0.022s
로그인 후 복사

test_user 테이블에 데이터 조각을 삽입합니다:

Table: test_user
Create Table: CREATE TABLE `test_user` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(100) NOT NULL DEFAULT &#39;&#39;,
  PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
로그인 후 복사

데이터베이스 테스트 스크립트 test_db.php를 만들고 두 PHP 버전을 모두 확인합니다. PDO 확장이 설치되어 있습니다.

insert into test_user (uid,name) values (1,"dada");
MariaDB [test]> select * from test_user;
+-----+------+
| uid | name |
+-----+------+
|   1 | dada |
+-----+------+
로그인 후 복사

두 PHP 버전 모두 PDO가 설치되어 있습니다(php_mysql 확장을 더 이상 사용하지 마십시오. 더 이상 사용되지 않으며 PHP7은 완전히 폐기되었으며 mysqli는 권장되지 않습니다).

다음으로 PDO를 통해 스크립트를 작성하여 select 실행 500,000회 성능 비교를 테스트합니다.

/usr/bin/php -m|grep pdo
pdo_mysql
pdo_sqlite

/usr/local/php7/bin/php -m|grep pdo
pdo_mysql
pdo_sqlite
로그인 후 복사

PHP5 test test_db.php:

$host = "yourHost";
$user = "yourUser";
$pass = "yourPass";
$db   = "test";
$port = 3306;

try
{
  $dbh = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
  echo "Connected<p>";
}
catch (Exception $e)
{
  echo "Unable to connect: " . $e->getMessage() ."<p>";
}

$sql = "select  SQL_NO_CACHE * from test_user;";
$tmp = array();
for ($i=1; $i<=500000; $i++) {
  $ret = $dbh->query($sql);  
  foreach ($ret as $row) {
    $tmp[&#39;id&#39;]   = $row[&#39;id&#39;];
    $tmp[&#39;name&#39;] = $row[&#39;name&#39;];
  }
}
로그인 후 복사

PHP7 test test_db.php:

time /usr/bin/php test_db.php
real    0m48.396s
user    0m11.149s  
sys     0m3.998s

real    0m51.447s
user    0m11.800s
sys     0m4.395s

real    0m51.517s
user    0m11.733s
sys     0m4.439s
로그인 후 복사

이번에는 스크립트가 500,000개의 쿼리를 실행했습니다. PHP7에서 실행되는 스크립트의 사용자 실행 시간은 PHP5보다 거의 1초 적습니다! 1밀리초가 아니라 1초가 적습니다.

3. PHP 프레임워크 테스트

  • thinkphp

은 확실히 중국에서 가장 먼저 선택되는 thinkphp 프레임워크입니다. 최신 thinkphp5를 선택하세요. 공식 홈페이지에서 thinkphp5.0.9 버전을 직접 다운로드 받았습니다.

  • (1) 프레임워크 진입 테스트

PHP5에서 테스트:

real    0m47.900s
user    0m9.875s
sys     0m4.130s

real    0m46.977s
user    0m9.760s
sys     0m3.983s

real    0m50.010s
user    0m10.268s
sys     0m4.307s
로그인 후 복사

PHP7에서 테스트:

time /usr/bin/php ./public/index.php
real    0m0.036s
user    0m0.026s
sys     0m0.010s

real    0m0.038s
user    0m0.026s
sys     0m0.012s

real    0m0.041s
user    0m0.032s
sys     0m0.009s
로그인 후 복사

입시 테스트를 보면 PHP와 PHP7 사이에 큰 차이가 없다는 것을 알 수 있는데, PHP7은 아직은 조금 더 빠릅니다.

(2) 프레임워크 로직 테스트
프레임워크 입구에서 첫 번째 단계의 로직을 재사용하세요:

time /usr/local/php7/bin/php ./public/index.php
real    0m0.027s
user    0m0.021s
sys     0m0.005s

real    0m0.027s
user    0m0.018s
sys     0m0.009s

real    0m0.025s
user    0m0.023s
sys     0m0.002s
로그인 후 복사

PHP5 버전:

<?php
namespace app\index\controller;

class Index
{
    public function index()
    {
       $arr = array();
       for ($i = 0; $i < 500000; $i++) {
           $arr[$i] = $i;
       }

       $tmp = array();
       foreach ($arr as $i) {
           if ($i % 2 == 0) {
               $is_exists = array_key_exists($i, $arr);
               if ($is_exists) {
                   array_push($tmp, $i);
               }
          }
      }
    }
}
로그인 후 복사

PHP7 버전:

time /usr/bin/php ./public/index.php
real    0m0.538s
user    0m0.463s
sys     0m0.072s

real    0m0.454s
user    0m0.386s
sys     0m0.065s

real    0m0.387s
user    0m0.331s
sys     0m0.055s
로그인 후 복사

thinkphp 프레임워크에서 PHP7 버전을 사용하면 성능이 PHP5 버전보다 약 4배 향상됩니다!

  • laravel

그런 다음 가장 인기 있는 PHP 아티스트 프레임워크를 테스트합니다.

  • (1) Framework 진입 테스트
    PHP5 버전:

time /usr/local/php7/bin/php ./public/index.php
real    0m0.150s
user    0m0.123s
sys     0m0.024s

real    0m0.137s
user    0m0.105s
sys     0m0.031s

real    0m0.123s
user    0m0.096s
sys     0m0.026s
로그인 후 복사

PHP 버전

time /usr/bin/php ./public/index.php

real    0m0.104s
user    0m0.081s
sys     0m0.022s

real    0m0.148s
user    0m0.122s
sys     0m0.025s

real    0m0.122s
user    0m0.100s
sys     0m0.021s
로그인 후 복사

laravel 프레임워크 진입 테스트에서 PHP5와 PHP7의 성능 차이는 크지 않지만 PHP5의 가장 빠른 0.081s도 가장 느린 0.067s보다 낫다는 것을 알 수 있습니다. PHP7 버전의 속도가 느려집니다. 따라서 PHP7이 여전히 더 좋습니다.

  • (2) 프레임워크 로직 테스트
    테스트 로직을 재사용하려면 thinkphp와 같은 약간의 로직을 추가해 보세요.
    먼저 laravel 라우팅을 수정하고 UserController의 인덱스 메소드를 직접 호출합니다:

time /usr/local/php7/bin/php ./public/index.php

real    0m0.079s
user    0m0.064s
sys     0m0.015s

real    0m0.081s
user    0m0.067s
sys     0m0.014s

real    0m0.067s
user    0m0.054s
sys     0m0.013s
로그인 후 복사

인덱스 메소드에 테스트 로직 작성:

Route::get(&#39;/&#39;, &#39;UserController@index&#39;);
로그인 후 복사

PHP5 version

public function index()
{
      $arr = array();
       for ($i = 0; $i < 500000; $i++) {
           $arr[$i] = $i;
       }

       $tmp = array();
       foreach ($arr as $i) {
           if ($i % 2 == 0) {
               $is_exists = array_key_exists($i, $arr);
               if ($is_exists) {
                   array_push($tmp, $i);
               }
          }
      }
}
로그인 후 복사

PHP7 version

time /usr/bin/php ./public/index.php
real    0m0.510s
user    0m0.377s
sys     0m0.079s

real    0m0.627s
user    0m0.447s
sys     0m0.091s

real    0m0.519s
user    0m0.436s
sys     0m0.079s
로그인 후 복사

PHP7 성능이 3~4로 향상되었습니다. times

압력 테스트

요청 1000개, 동시성 50

  • PHP5 버전:

세 가지 샘플은 다음과 같습니다.

PHP7 버전:

스트레스 테스트를 통해 PHP7 버전에서는 개별 요청 시간과 요청 완료 시간의 평균은 물론, 각 연결 요청의 실제 실행 시간도 덜 소요되는 것을 확인할 수 있습니다 , 가장 중요한 성능 지표 QPS도 PHP5 버전보다 높습니다.

PHP7의 Opcache 성능 테스트

opcache 활성화:

젠장! opcache를 켠 PHP7은 실제로 켜지지 않은 PHP7과 비교했을 때 성능이 10배 이상 향상되었고, PHP5와 비교하면 거의 20배 가까이 향상되었습니다! 두려운지 물어보세요!

PHP 스크립트 테스트 데이터는 다음과 같습니다:

PHP7 vs PHP5.png

PHP7 성능은 PHP5의 약 3~4배입니다.

스트레스 테스트 데이터는 다음과 같습니다.

PHP5 vs PHP7 vs PHP7+OPCACHE.png

결론:

이 글에서는 PHP7과 PHP5의 성능이 실제로 3~4 정도 향상되었습니다. 순수 PHP에서든 스크립트에서든 프레임워크에서든 PHP7의 고성능 성능은 일관됩니다.

PHP7은 매우 빠릅니다. PHP7+OpCache는 매우 빠릅니다. PHP7은 정말 대단합니다. PHP의 새로운 시대가 도래했습니다. 서둘러 사용하세요!

관련 기사 추천: ​​

PHP의 strtotime() 함수 원리 설명

PHP의 ts와 nts 비교

위 내용은 php7과 php5의 차이점은 무엇입니까? php5와 php7의 비교의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿