You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何PHP7.4读取CSV文件比PHP8.2更快?实测结果求助

PHP7.4与PHP8.2 CSV读取性能测试对比异常分析

我做了一项简单测试:读取包含10万行(每行10列)随机英文单词的CSV文件,脚本将每行数据存入数组。通过Apache Benchmark命令ab -n 100 -l http://localhost:8000发送100次请求,对比PHP7.4与PHP8.2的性能。结果出乎意料:PHP7.4总耗时66.9秒,PHP8.2总耗时71秒,多次测试结果一致。

测试环境完全相同:Docker容器、Ubuntu 20.04系统、默认PHP配置。此前在质数计算测试中,PHP8.2的表现远快于PHP7.4,且PHP8系列一直被宣传为性能最优的PHP版本。


测试脚本

<?php

if (!isset($_GET['phpinfo'])) {
    $csvData = [];

    if (($handle = fopen("test.csv", "r")) !== FALSE) {
        $row = 0;

        while (($data = fgetcsv($handle)) !== FALSE) {
            $csvData[] = $data;
            $row++;
        }

        fclose($handle);

        if ($row === 100000) {
            http_response_code(200);
        } else {
            http_response_code(400);
        }
    }
} else {
    phpinfo();
}

Dockerfile(PHP8版本仅替换PHP版本为8.2及工作目录)

FROM ubuntu:20.04

ARG PHP_VERSION="7.4"

RUN apt update && \
    apt -y install --no-install-recommends && \
    apt -y install software-properties-common && \
    add-apt-repository ppa:ondrej/php && \
    apt update && \
    apt -y install --no-install-recommends && \
    apt -y install php${PHP_VERSION}

WORKDIR /var/www/html/php7

COPY . /var/www/html/php7

docker-compose.yml(PHP8版本仅替换php7为php8)

version: "3.9"
services:
  php7:
    container_name: php7
    build: ./php7
    ports:
      - "8000:8000"
    volumes:
      - ./php7:/var/www/html/php7
    stdin_open: true
    tty: true
    restart: always
    command: php -S 0.0.0.0:8000 -t .

test.csv示例行

"sides","opportunity","thin","remove","mud","this","appearance","proud","bad","round"

内容的提问来源于stack exchange,提问作者piweu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 07:55:37