![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/fidry/cpu-core-counter/src/Finder/ |
<?php /* * This file is part of the Fidry CPUCounter Config package. * * (c) Théo FIDRY <[email protected]> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ declare(strict_types=1); namespace Fidry\CpuCoreCounter\Finder; use function count; use function explode; use function is_array; use function preg_grep; use function strtok; use const PHP_EOL; /** * The number of physical processors. * * @see https://stackoverflow.com/a/23378780/5846754 */ final class LscpuPhysicalFinder extends ProcOpenBasedFinder { public function toString(): string { return 'LscpuPhysicalFinder'; } public function getCommand(): string { return 'lscpu -p'; } protected function countCpuCores(string $process): ?int { $lines = explode(PHP_EOL, $process); $actualLines = preg_grep('/^\d+/', $lines); if (!is_array($actualLines)) { return null; } $cores = []; foreach ($actualLines as $line) { strtok($line, ','); $core = strtok(','); if (false === $core) { continue; } $cores[$core] = true; } unset($cores['-']); $count = count($cores); return 0 === $count ? null : $count; } }