PHP Composer가 왜 그렇게 느린가요?
종속성이없는 프로젝트를 초기화하기 만하면 Composer가 왜 그렇게 느린가요? 내가 실행하는 명령은 다음과 같습니다.
composer init
composer install
3 분 동안 기다립니다 (과장 아님).
작곡가가해야 할 일은 오토로더를 /vendor
가져 와서를 만드는 것인데 , 왜 그렇게 오래 걸리나요? 그 문제에 대해 왜 그 단계가 일어나지 composer init
않습니까?
캐시 된 autloader 및 공급 업체를 가져 오는 데 사용할 수있는 구성 옵션이 init
있습니까?
또한 xdebug를 비활성화하십시오. Xdebug는 .NET Framework와 같이 간단한 명령을 실행할 때도 Composer에 몇 분 정도 걸릴 수 있습니다 composer --version
.
composer는 file_get_contents()
. TCP 최적화, Keep-Alive, 멀티플렉싱이 없습니다.
패키지를 병렬로 다운로드하기 위해 작곡가 플러그인을 만들었습니다.
https://packagist.org/packages/hirak/prestissimo
$ composer global에는 hirak / prestissimo가 필요합니다.
시도해주세요. 내 환경에서는 composer install
10 배 더 빨라집니다.
- 최신 버전의 Composer가 있는지 확인하십시오.
- 예를 들어 -vvv를 추가하여 상세 모드로 설치합니다.
composer global require "squizlabs/php_codesniffer=*" -vvv
- 작곡가의 속도가 느려지는 곳을 찾을 수 있다면, 예를 들어 패키지를 다운로드 할 때 5 분 동안 멈췄습니다. 50mbps 연결에서 20kb 파일을 다운로드하는 데 5 분 이상 걸렸습니다. 이는 https가 아닌 http를 사용하여 packagist에서 패키지를 다운로드했기 때문입니다. 구성을 변경하면 내 문제가 해결되었습니다.
composer config --global repo.packagist composer https://packagist.org
여기도 마찬가지입니다. "composer install --profile -vvv"에서 자세한 내용을 확인하십시오. 제 경우에는 몇 개의 json 파일을 다운로드하는 데 오랜 시간이 걸립니다. 그들은 내 서버에 캐시되지만 모든 작곡가 업데이트 / 설치 호출과 함께 다운로드됩니다.
... 30 분 후 ...
@ packagist.org의 일부 성능 문제처럼 보입니다. 이제 composer 설치가 2 초 이내에 실행됩니다! 그리고 다운로드 한 json 파일은 제대로 캐시됩니다.
나는이 문제를 겪고 있었고 내 컴퓨터에 XDebug를 설치하지 않았기 때문에 곡선을 그리워했습니다. IPv6 주소 지정 모드 오류였습니다. 그래서 테스트하기 위해
curl --ipv4 'https://packagist.org/packages.json'
curl --ipv6 'https://packagist.org/packages.json'
IPv4는 통과했지만 IPv6는 실패합니다. 결국 네트워킹 스택이 지원하지 않는 이유를 찾아야하지만 제 경우에는 해결할 수있을 때까지 IPv4 트래픽을 우선적으로 사용하기로 결정했습니다. CentOS에서 /etc/gai.conf 파일을 생성 / 수정하고 다음을 넣었습니다.
label ::1/128 0
label ::/0 1
label 2002::/16 2
label ::/96 3
label ::ffff:0:0/96 4
precedence ::1/128 50
precedence ::/0 40
precedence 2002::/16 30
precedence ::/96 20
precedence ::ffff:0:0/96 100
Ubuntu에서는 해당 파일을 편집하고 줄의 주석 처리를 제거 할 수도 있습니다.
precedence ::ffff:0:0/96 100
Ubuntu Xenial 16.04 VPS에서 다음을 수행해야합니다.
sudo sh -c "echo 'precedence ::ffff:0:0/96 100' >> /etc/gai.conf"
composer global require hirak/prestissimo
위의 답변 중 하나라도 작동하지 않으면 방화벽이 포트 9418에서 TCP_OUT을 허용하는지 확인하십시오. 방화벽 보안이 너무 예리했습니다. 이로 인해 작곡가가 너무 오래 걸리고 시간 초과 또는 포트가 차단되었음을 표시하지 않았습니다. 도움이 되었기를 바랍니다.
참고 URL : https://stackoverflow.com/questions/28436237/why-is-php-composer-so-slow
'Nice programing' 카테고리의 다른 글
SQL 다중 결합 문 (0) | 2020.11.03 |
---|---|
아이콘을 유지하면서 뒤로 버튼에서 텍스트 제거 (0) | 2020.11.02 |
INTENT 인터넷 연결 확인 (0) | 2020.11.02 |
Java 컴파일 속도 대 Scala 컴파일 속도 (0) | 2020.11.02 |
isgl3D를 사용하여 3D 개체 (.pod)의 텍스처 매핑이 올바르게 발생하지 않음 (0) | 2020.11.02 |