Home > Backend Development > PHP7 > body text

Introducing PHP7+Swoole/Nginx/Golang performance comparison

coldplay.xixi
Release: 2023-02-17 19:52:02
forward
3145 people have browsed it

Introducing PHP7+Swoole/Nginx/Golang performance comparison

Recommended (free): PHP7

QPS comparison

Use the apache bench tool to perform stress testing on Nginx static pages, Golang Http programs, and PHP7 Swoole Http programs. In the benchmark test of 1 million concurrent HTTP requests on the same machine, the QPS comparison is as follows:

##SoftwareQPSSoftware versionNginx164489.92nginx/1.4.6 (Ubuntu)Golang166838.68go version go1.5.2 linux/amd64PHP7 Swoole287104.12 swoole-1.7.22-alpha##Nginx-1.9.9
245058.70 nginx/1.9.9
Note: In the test of Nginx-1.9.9, access_log has been turned off and open_file_cache is enabled to cache static files into memory

More detailed test details
  • Historical test data: Performance comparison of Nginx/Golang/Swoole/Node.js
Test environment

CPU: Intel® Core™ i5-4590 CPU @ 3.30GHz × 4
  • Memory: 16G
  • Disk: 128G SSD
  • Operating system: Ubuntu14.04 ( Linux 3.16.0-55-generic)
Stress testing tool

ab -c 100 -n 1000000 -k http://127.0.0.1: 8080/

VHOST configuration

server {
    listen 80 default_server;
    root /data/webroot;
    index index.html;
}
Copy after login

Test page

<h1>Hello World!</h1>
Copy after login

Number of processes

Nginx has opened 4 Worker processes

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
Copy after login

Golang

Test Code

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))
}
Copy after login

PHP7 Swoole

PHP7 has the

OpCache

accelerator enabled. PHP version

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
Copy after login

Test code

$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();
Copy after login

Related free learning recommendations:

php programming(video)

The above is the detailed content of Introducing PHP7+Swoole/Nginx/Golang performance comparison. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:csdn.net
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template