> 백엔드 개발 > PHP7 > PHP7+Swoole/Nginx/Golang 성능 비교 소개

PHP7+Swoole/Nginx/Golang 성능 비교 소개

coldplay.xixi
풀어 주다: 2023-02-17 19:52:02
앞으로
3193명이 탐색했습니다.

PHP7+Swoole/Nginx/Golang 성능 비교 소개

권장(무료): PHP7

QPS 비교

Apache 벤치 도구를 사용하여 Nginx 정적 페이지, Golang Http 프로그램, PHP7+Swoole Http 프로그램을 스트레스 테스트하세요. 동일한 시스템에서 100만 개의 동시 HTTP 요청에 대한 벤치마크 테스트에서 QPS 비교는 다음과 같습니다. 1.4 .6(우분투)

Golang166838.68go 버전 go1.5.2 linux/amd64PHP7+Swoole287104.12swoole- 22-알파Nginx-1.9. 9245058.70nginx/1.9.9참고: Nginx-1.9.9 테스트에서 access_log가 꺼지고 open_file_cache가 활성화되어 정적 파일을 메모리에 캐시합니다자세히 알아보기 테스트 세부 정보 과거 테스트 데이터: Nginx/Golang/Swoole/Node.js테스트 환경의 성능 비교CPU: Intel® Core™ i5-4590 CPU @ 3.30GHz × 4메모리: 16G
디스크: 128G SSD

운영 체제: Ubuntu14.04(Linux 3.16.0-55-generic)
  • 스트레스 테스트 도구
ab -c 100 -n 1000000 -k http://127.0.0.1 :8080 /

VHOST 구성

server {
    listen 80 default_server;
    root /data/webroot;
    index index.html;
}
로그인 후 복사
테스트 페이지
    <h1>Hello World!</h1>
    로그인 후 복사
  • 프로세스 수
  • Nginx에서 4개의 작업자 프로세스를 열었습니다
  • htf@htf-All-Series:~/soft/php-7.0.0$ ps aux|grep nginx
    root      1221  0.0  0.0  86300  3304 ?        Ss   12月07   0:00 nginx: master process /usr/sbin/nginx
    www-data  1222  0.0  0.0  87316  5440 ?        S    12月07   0:44 nginx: worker process
    www-data  1223  0.0  0.0  87184  5388 ?        S    12月07   0:36 nginx: worker process
    www-data  1224  0.0  0.0  87000  5520 ?        S    12月07   0:40 nginx: worker process
    www-data  1225  0.0  0.0  87524  5516 ?        S    12月07   0:45 nginx: worker process
    로그인 후 복사
  • Golang
  • 테스트 코드

    package main
    
    import (
        "log"
        "net/http"
        "runtime"
    )
    
    func main() {
        runtime.GOMAXPROCS(runtime.NumCPU() - 1)
    
        http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
            w.Header().Add("Last-Modified", "Thu, 18 Jun 2015 10:24:27 GMT")
            w.Header().Add("Accept-Ranges", "bytes")
            w.Header().Add("E-Tag", "55829c5b-17")
            w.Header().Add("Server", "golang-http-server")
            w.Write([]byte("<h1>\nHello world!\n</h1>\n"))
        })
    
        log.Printf("Go http Server listen on :8080")
        log.Fatal(http.ListenAndServe(":8080", nil))
    }
    로그인 후 복사
    PHP7+Swoole

    PHP7에는

    가속기가 활성화되어 있습니다. .

    PHP 버전

    htf@htf-All-Series:~/soft/php-7.0.0$ php -v
    PHP 7.0.0 (cli) (built: Dec 10 2015 14:36:26) ( NTS )
    Copyright (c) 1997-2015 The PHP Group
    Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
        with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
    로그인 후 복사

    테스트 코드

    $http = new swoole_http_server("127.0.0.1", 9501, SWOOLE_BASE);
    
    $http->set([
        &#39;worker_num&#39; => 4,
    ]);
    
    $http->on(&#39;request&#39;, function ($request, swoole_http_response $response) {
        $response->header(&#39;Last-Modified&#39;, &#39;Thu, 18 Jun 2015 10:24:27 GMT&#39;);
        $response->header(&#39;E-Tag&#39;, &#39;55829c5b-17&#39;);
        $response->header(&#39;Accept-Ranges&#39;, &#39;bytes&#39;);    
        $response->end("<h1>\nHello Swoole.\n</h1>");
    });
    
    $http->start();
    로그인 후 복사

    관련 무료 학습 권장사항:

    php 프로그래밍

    (동영상)

    위 내용은 PHP7+Swoole/Nginx/Golang 성능 비교 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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