viest / php-ext-xlswriter

🚀 PHP Extension for creating and reader XLSX files.
https://xlswriter.viest.me
BSD 2-Clause "Simplified" License
2.25k stars 232 forks source link

使用内存模式导出,导出过程中CPU很高 #493

Closed wangsijia closed 9 months ago

wangsijia commented 12 months ago

xlswriter 版本1.3.7 xlswriter

xlswriter support => enabled Version => 1.3.7 bundled libxlsxwriter version => 1.0.0 bundled libxlsxio version => 0.2.27

使用内存模式导出,导出过程中CPU飙升到100%,这个我看有篇文章说是zip压缩占用资源,这个有办法解决吗?升级版本会好吗?

        $config = [
            'path' => $this->getTmpDir() . '/',
        ];

        $fileName    = $file_name.'_' . $this->lang . microtime(true) . '.xlsx';

        $xlsxObject = new \Vtiful\Kernel\Excel($config);

        // Init File
        $fileObject = $xlsxObject->constMemory($fileName);

        $header_row = [];
        $DateRangeRow = [];
        foreach ($header as $item){
            $header_row[] = $item;
        }
        $fileObject->header($header_row);
        foreach ($generator as $data) {
            foreach ($data as $item) {
                $DateRangeRow[] = $item;
                if (count($DateRangeRow) >= 1000) {
                    $fileObject->data($DateRangeRow);
                    $DateRangeRow = [];
                }
            }
        }
        if (!empty($DateRangeRow)) {
            $fileObject->data($DateRangeRow);
            $DateRangeRow = [];
        }

        // Output
        $filePath = $fileObject->output();
viest commented 9 months ago

你可以尝试使用最新版本。

wangsijia commented 9 months ago

你可以尝试使用最新版本。 请问新版本有哪些更新能让cpu使用资源降低呢?