2015-02-10 14 views
30

Tại sao nhà soạn nhạc lại quá chậm khi tất cả những gì tôi làm là bắt đầu một dự án với không phụ thuộc? Dưới đây là các lệnh tôi chạy:Tại sao trình soạn nhạc php lại chậm?

composer init

composer install

Chờ 3 phút (không phải là một sự phóng đại).

Tất cả nhà soạn nhạc phải làm là lấy một bộ nạp tự động và tạo /vendor, vậy tại sao mất quá nhiều thời gian? Đối với vấn đề đó, tại sao bước đó không xảy ra trên composer init?

Có tùy chọn cấu hình nào tôi có thể sử dụng để lấy bộ nạp và bộ tải xuống được lưu trong bộ nhớ cache trên init không?

+0

Nghiêm trọng hơn: bạn đã cập nhật nhà soạn nhạc của mình trong 30 ngày qua chưa? Có một cải tiến hiệu suất lớn đối với mã chỉ vào tháng trước –

+0

Tôi bắt đầu 'soạn cài đặt' hơn 5 phút trước và nó chưa hoàn thành. 'Composer version 1.0-dev (07c644ac229a21df80180598d8bb9aaba232eecb) 2015-02-03 12: 51: 10'.Có thể đây không phải là phiên bản mới nhất nhưng vẫn mới hơn phiên bản chính của IBM của bạn ;-) – axiac

+0

Vui lòng xác nhận rằng bạn đã hoàn thành 'soạn nhạc tự cập nhật ' – sjagr

Trả lời

10

Ngoài ra, hãy tắt xdebug. Xdebug có thể khiến Composer mất vài phút ngay cả khi chạy một lệnh đơn giản như composer --version.

+0

Điều này thực sự hóa ra là vấn đề của tôi. Xdebug làm cho nhà soạn nhạc chạy cực chậm. – AgmLauncher

4

Tương tự tại đây. Nhận thêm chi tiết với "composer install --profile -vvv". Trong trường hợp của tôi phải mất một thời gian dài để tải xuống một vài tệp json. Chúng được lưu trữ trên máy chủ của tôi nhưng vẫn được tải xuống với mọi cuộc gọi cập nhật/cài đặt của nhà soạn nhạc.

... 30 phút sau ...

Dường như một số vấn đề về hiệu suất @ packagist.org. Bây giờ cài đặt soạn nhạc chạy trong vòng 2 giây! Và các tệp json đã tải xuống được lưu trữ đúng cách.

108

Do trình soạn nhạc thực hiện theo file_get_contents(). Điều đó không có tối ưu hóa TCP, không có Keep-Alive, không ghép kênh ...

Tôi đã tạo plugin trình soạn thảo để tải xuống các gói song song.
https://packagist.org/packages/hirak/prestissimo

$ composer global require hirak/prestissimo

Hãy thử nó. Trong môi trường của tôi, composer install trở nên nhanh hơn gấp 10 lần.

+13

Tôi không biết tại sao câu trả lời này không có 1 000 upvotes .. Cảm ơn bạn cho rằng plugin, đó là một cuộc sống tiết kiệm, theo nghĩa đen! – Mjh

+1

@AgmLauncher vui lòng đánh dấu đây là câu trả lời được chấp nhận vì nó giảm đáng kể thời gian cài đặt – ooxi

+0

Cải thiện là hiển nhiên. Cảm ơn bạn – Alex83690

17
  1. Đảm bảo bạn có phiên bản Composer mới nhất.
  2. Cài đặt ở chế độ tiết kiệm bằng cách thêm -vvv, ví dụ composer global require "squizlabs/php_codesniffer=*" -vvv
  3. Nếu bạn có thể tìm ra nơi nhà soạn nhạc đang đối mặt với tốc độ chậm, ví dụ như tôi đã bị kẹt trong 5 phút khi tải xuống gói. Mất 5 phút để tải xuống tệp 20 kb trên kết nối 50 mbps. Điều này là bởi vì nó đã tải xuống các gói từ packagist bằng cách sử dụng http và không https. Làm cho những thay đổi đối với cấu hình đã giải quyết vấn đề của tôi: composer config --global repo.packagist composer https://packagist.org
+2

Tôi mới làm nhà soạn nhạc và cố gắng khắc phục điều này trong 2 ngày, sau khi đọc nhận xét của bạn và thêm -vvv, cuối cùng nó cũng hoạt động. 1000 upvotes –

+0

công việc này cho tôi quá – azul

0

Nếu bất kỳ câu trả lời ở trên không hoạt động, kiểm tra xem tường lửa của bạn cho phép TCP_OUT trên cổng 9418. an ninh tường lửa của tôi là quá sắc nét. Điều này làm cho nhà soạn nhạc mất quá nhiều thời gian, tôi không bao giờ có bất kỳ thời gian chờ hoặc chỉ ra cổng đã bị chặn. Hy vọng nó giúp!

Các vấn đề liên quan