> 백엔드 개발 > PHP7 > 본문

PHP5.6과 7.3, Tomcat7과 8.5의 속도 비교

藏色散人
풀어 주다: 2023-02-17 14:28:01
앞으로
3065명이 탐색했습니다.

머리말

저는 개인적으로 여전히 PHP5.6을 사용하고 있으며 7.3은 순전히 테스트용입니다. 왜냐하면 PHP7은 이미 강력한 타이핑을 지원하고 더 이상 문자열 기반 함수 호출 방법을 지원하지 않기 때문입니다. 그래서 제 개인 프로젝트의 PHP 버전이 멈췄습니다. 5.6.

저는 최근에 PHP 5.6, 7.3과 Tomcat 7, 8, 9를 속도 측면에서 시험해보고 싶습니다. 이전에 PHP가 데이터베이스를 더 빠르게 작동하는 반면 Java는 비즈니스 로직을 더 빠르게 처리한다는 기사를 읽었습니다. 비즈니스 로직을 Java에 맡기고, 데이터베이스 운영을 PHP에 맡기고 싶습니다.

하지만 이렇게 하면 속도가 더 빨라지나요? 비교해 보면 데이터 자체가 말해줍니다!

그나저나 저는 서버 관리를 위해 Pagoda 패널을 사용하고 있으며, 모든 서비스 소프트웨어 설치는 Pagoda 패널에서 이루어집니다.

테스트 서문

테스트 중에 Tomcat7과 8.5의 결과가 유사하다는 것을 알았습니다. 9에서도 동일한 결과가 나올 것으로 추정되므로 Tomcat9은 테스트하지 않겠습니다. Tomcat 부분은 비즈니스 로직 처리에서 7과 8.5만 테스트하고 나머지는 8.5

서버 구성

● 시스템: CentOS Linux 7.6.1810(Core)

● Pagoda 버전: 6.9.8

● 제조업체: Baidu 지능형 클라우드

● 유형: 집중 컴퓨팅 ic3

● CPU: 1 코어

● 메모리: 1GB

속도 비교

비즈니스 로직 처리 속도

0에서 1000까지 추가 0000

PHP5.6

<?php
$time_start = microtime(true);
 
$count = 0;
for ($i = 0; $i < 10000000; ++ $i) {
    $count += $i;
}
 
$time_end = microtime(true);
 
echo ($time_end - $time_start);  // 结果:0.34648394584656
로그인 후 복사

결과: 0.34648394584656

PHP7.3

<?php
$time_start = microtime(true);
 
$count = 0;
for ($i = 0; $i < 10000000; ++ $i) {
    $count += $i;
}
 
$time_end = microtime(true);
 
echo ($time_end - $time_start);  // 结果:0.12653613090515
로그인 후 복사

결과: 0.12653613090515

결론: PHP7.3은 비즈니스 로직 처리에서 5.6보다 3배 빠릅니다

Tomcat7

<%
    java.util.Date d1 = new java.util.Date();
    long start_time = d1.getTime();  // 单位:毫秒
    
    long count = 0;
    for (long i = 0; i <= 10000000; ++ i) {
        count += i;
    }
    
    java.util.Date d2 = new java.util.Date();
    long end_time = d2.getTime();  // 单位:毫秒
    out.println(end_time - start_time);  // 结果:17毫秒
%>
로그인 후 복사

결과: 17밀리초, 몇 번 더 새로 고침하면 4~5밀리초가 됩니다. 주로 4밀리초입니다.

Tomcat8.5

결과: 99밀리초, 몇 번 더 새로 고침하면 4밀리초가 됩니다

비즈니스 논리 테스트 요약

결국 Java는 반컴파일되고 반해석되는 언어이므로 빠른 것이 정상입니다. PHP7은 100밀리초 이상에 도달했지만 PHP5는 조금 느려서 300밀리초만 넘었습니다.

데이터베이스 IO 테스트

PDO의 준비 및 실행 테스트 사용

PHP5.6

● INSERT는 10000개의 행을 삽입합니다: 37.575320005417초

● SELECT는 10000개의 행을 읽습니다: 0.01023697 8530884초

● SELECT 루프는 10000행을 읽습니다: 1. 0460438728333초

● UPDATE 업데이트 10000개 행: 0.044967889785767초

● 10,000개 행 업데이트를 위한 UPDATE 루프: 36.463224887848초

● 10,000개 행 삭제를 위한 DELETE: 0.0 34432888031006초

● 10,000개 행을 삭제하는 DELETE 루프: 37.198384046555초

PHP7.3

● INSERT는 10,000개 행을 삽입합니다: 33.949599027634초

● SELECT는 10,000개 행을 읽습니다: 0.021260023117065초

● SELECT 루프는 10,000개 행을 읽습니다: 1.0032389 163971초

● UPDATE 업데이트 10,000개 행: 0.040410995483398초

● UPDATE 루프 10,000개 행 업데이트: 36.759881019592초

● DELETE는 10,000개 행 삭제: 0.046122074127197초

● 10,000개 행을 삭제하는 DELETE 루프: 35.682950973511초

PHP 요약: 데이터베이스 IO에는 버전 차이가 거의 없으며 단일 명령문을 실행합니다.

Tomcat8.5

컴파일 전 1차 실행, 컴파일 후 2차 실행

● INSERT는 10,000줄 삽입: 컴파일 전: 39.738초, 컴파일 후: 37.104초

● SELECT는 10,000줄 읽기: 컴파일 전: 0.079초, 컴파일 후: 0.028초

● SELECT 루프는 10,000행 읽기: 컴파일 전: 2.303초, 컴파일 후: 1.775초

● UPDATE 업데이트 10,000 행: 컴파일 전: 0.060초, 컴파일 후: 0.040초

● UPDATE 루프 업데이트 10,000줄: 컴파일 전: 43.326초, 컴파일 후: 40.847초

● DELETE는 10,000줄 삭제: 첫 번째 실행: 0.137초

● DELETE 루프는 10,000줄을 삭제합니다. 첫 번째 실행: 40.597초

요약: Java에는 강력한 비즈니스 로직 기능이 있지만 데이터베이스 IO 속도는 PHP보다 느리고 PHP의 경우 그 반대입니다.

하이브리드 개발 테스트

비즈니스 로직은 Java로 작성되었으며, PHP는 CURL을 통해 Java를 호출하고, 테스트 속도

결과:

첫 번째 테스트: 0.51814317703247초

두 번째 테스트: 0.016 547918 319702초

요약:

첫 번째 테스트는 Java 측을 컴파일해야 하기 때문에 시간이 걸릴 수 있지만 두 번째 테스트는 더 이상 컴파일할 필요가 없으므로 매우 빠릅니다.

이후 몇 가지 테스트를 진행한 결과 모두 만족스러웠고, 속도도 PHP7보다 10배 정도 빨랐습니다.

단, 혼합 개발의 단점은 개발 효율성이 높지 않아 더 많은 함정을 초래할 수 있다는 점이지만, 운영 측면에서는 각각 장점이 있을 수 있습니다.

저는 개인적으로 이에 대해 중립적인 태도를 갖고 있으며, 이를 권장하거나 반대하지 않습니다. 왜냐하면 다양한 프로젝트에 관련 요구 사항이 있을 수 있고 이 방법이 최선의 선택일 수 있기 때문입니다.

위 내용은 PHP5.6과 7.3, Tomcat7과 8.5의 속도 비교의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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