> 백엔드 개발 > PHP7 > PHP7이 그렇게 멋진가요? (php7.1과 php5.6의 수평 비교)

PHP7이 그렇게 멋진가요? (php7.1과 php5.6의 수평 비교)

coldplay.xixi
풀어 주다: 2023-02-17 18:50:01
앞으로
2557명이 탐색했습니다.

PHP7이 그렇게 멋진가요? (php7.1과 php5.6의 수평 비교)

추천(무료): PHP7

PHP7이 출시됩니다

PHP7이 정식 출시된 지 1년 반이 지났는데, 데뷔했을 때 몇 배 빨라졌다고 합니다. 이전 버전보다 PHP7에서 실행되는 이러한 종류의 오픈 소스 프레임워크 또는 시스템의 속도와 효율성이 몇 배로 향상되었습니다. 어쨌든 언론과 개발자 모두 칭찬을 아끼지 않을 것입니다.
아무 말 없이 조용히 멋있게 행동하는 모습만 지켜볼게요.

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

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

두 가지 PHP 버전 설치

http://php.net/ 이미 최신 버전의 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
로그인 후 복사

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

Php7과 PHP5 대결

1 :

$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배 향상되었음을 알 수 있습니다. vim test.php

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.900suser 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 버전:

<?phpnamespace 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) 프레임워크 진입 테스트

    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.081초로 PHP7 버전의 가장 느린 0.067초보다 느립니다. 따라서 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 버전
    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.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로 향상되었습니다. 배

    위 내용은 PHP7이 그렇게 멋진가요? (php7.1과 php5.6의 수평 비교)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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