2011-10-05 4 views
3

coreI7 컴퓨터 시스템에서 PHP를 실행하고 싶습니다. 거기에 64 비트 모드에서 PHP를 실행하고 코어 + 하이퍼 스레 드의 모든 기능을 사용할 수있는 방법입니다.멀티 코어 PC에서 PHP를 실행하는 방법

+1

가능한 복제본 [PHP/MySQL 응용 프로그램에서 어떻게 멀티 코어 CPU를 잘 활용합니까?] (http://stackoverflow.com/questions/2267345/how-do-you-make-good-of-of -multicore-cpus-in-your-php-mysql-applications) –

답변

3

PHP는 스레드 생성을 지원하지 않습니다.

+0

http://php.net/pcntl-fork의 약자는 무엇입니까? – KingCrunch

+0

스레드가 아니라 프로세스를 생성합니다. – ThiefMaster

+1

하지만 문제는 결코 스레드에 관한 것이 아닙니다. 여러 프로세스를 사용하면 공유 메모리 오버 헤드가 없으므로 "코어의 모든 기능을 사용할 수 있습니다"(더 좋지 않은 경우). – KingCrunch

1

항상 같음 : 애플리케이션에 따라 다르지만 일반적으로 아니오. 당신이 기대하는 것보다 많은 코어를 사용하는 많은 언어로 된 어플리케이션이별로 없습니다.

그러나 PHP는 "실행 및 종료"로 설계되어 의미합니다. 일반적으로 한 번 실행 된 후 종료됩니다. 이는 추가 프로세스가 일반적으로 필요하지 않으며 전체 실행 속도를 늦출 수 있음을 의미합니다 (프로세스 생성 및 작업). 다중 프로세스 응용 프로그램을 만들 수있는 몇 가지 기능이 있지만 유용하다고 생각되는 응용 프로그램에 대한 아이디어는 없다고 생각하지 않습니다.

3

pcntl_fork으로 새 프로세스를 포크 할 수 있지만 대부분의 Apache + PHP 구성에서 실패하거나 정의되지 않은 동작을 제공하는 Apache를 포기하게되므로 웹 컨텍스트에서 실행할 때 이것이 불가능하거나 실용적이지 않을 수 있습니다.

한편, 각 Apache 프로세스는 코어 중 하나에 대해 자동으로 스케줄되며 어쨌든 다른 코어로 끝납니다. 따라서 웹 컨텍스트에서도 멀티 코어를 사용하는 것은 여전히 ​​있습니다.

관련 문제