Warum ist PHP Composer so langsam?

96

Warum ist PHP Composer so langsam, wenn ich nur ein Projekt ohne Abhängigkeiten initiiere? Hier sind die Befehle, die ich ausführe:

composer init

<Schritt durch die Erstellung von composer.json, definieren Sie 0 Null-Abhängigkeiten>

composer install

Warten Sie 3 Minuten (keine Übertreibung).

Alles, was der Komponist tun muss, ist, einen Autoloader einzuziehen und zu erstellen /vendor. Warum dauert es so lange? Warum passiert dieser Schritt nicht composer init?

Gibt es eine Konfigurationsoption, mit der ich einen zwischengespeicherten Autloader und Hersteller heranziehen kann init?

AgmLauncher
quelle
1
Ernsthafter: Haben Sie Ihren Komponisten in den letzten 30 Tagen aktualisiert? Es gab eine große Leistungsverbesserung des Codes erst letzten Monat
Mark Baker
Ich habe vor compose installmehr als 5 Minuten angefangen und es wurde noch nicht abgeschlossen. Composer version 1.0-dev (07c644ac229a21df80180598d8bb9aaba232eecb) 2015-02-03 12:51:10. Vielleicht ist es nicht die neueste Version, aber immer noch neuer als Ihr IBM-Mainframe ;-)
Axiac
Bitte bestätigen Sie, dass Sie getan habencomposer self-update
sjagr
Ich habe es letzte Woche oder so aktualisiert.
AgmLauncher
Ich hatte Probleme damit, dass das Composer-Update und das Composer-Self-Update unglaublich langsam waren. Nehmen Sie sich mehr als 15 Minuten Zeit und werfen Sie dann Ausnahmen. Ich habe die DNS-Server meines Routers geändert (von Google auf die meines ISP) und Composer hat wie ein Zauber funktioniert.
Gordon Hickley

Antworten:

39

Deaktivieren Sie außerdem Xdebug . Xdebug kann Komponisten verursachen Minuten sogar zu nehmen , wenn es als einen Befehl so einfach ausgeführt composer --version.

adjco
quelle
1
Dies stellte sich tatsächlich als mein Problem heraus. Mit Xdebug läuft der Komponist extrem langsam.
AgmLauncher
Bitte versuchen Sie es mit Hirak / Prestissimo. Es ist ein Composer-Plugin, mit dem Sie Pakete in schnellem Tempo herunterladen können. link
Ritesh Chitrakar
3
Zum Zeitpunkt des Schreibens hatte ich die gleiche Leistung mit oder ohne Debug, da der Composer im Jahr 2020/2019 xdebug beim Ausführen automatisch deaktivierte, obwohl die Installation des yii2-Starter-Kits bei allen Bibliotheken etwa 200 Sekunden dauerte, sei es ohne xdebug, daher ist diese Antwort veraltet
FantomX1
Sah das, zog meinen Debugger hoch. Es wurde festgestellt, dass xdebug, obwohl es nur für FPM konfiguriert ist, von der CLI initiiert wurde und meine IDE dort an einem Haltepunkt saß und auf mich wartete.
Klicken Sie auf
370

Weil Composer von implementiert wird file_get_contents(). Das hat keine TCP-Optimierungen, kein Keep-Alive, kein Multiplexing usw.

Ich habe ein Composer-Plugin erstellt, um Pakete parallel herunterzuladen: https://packagist.org/packages/hirak/prestissimo

$ composer global erfordern hirak / prestissimo

Versuch es bitte. In meiner Umgebung composer installwird 10 mal schneller.

Hiraku
quelle
Wow, ich bin von 124 Sekunden auf nur 21 Sekunden gegangen, um ein neues Laravel-Projekt zu installieren. Liebe es!
Cornips
6
Gute Nachricht: Dies wurde anscheinend im Januar 2019 in Composer 2 zusammengeführt: github.com/composer/composer/pull/7904
Chuck Le Butt
@ChuckLeButt aber Veröffentlichung immer noch außer Sicht :(
hejdav
Danke, Bro. Es ist 20x schneller.
Ilyas Karim
59
  1. Stellen Sie sicher, dass Sie die neueste Version von Composer haben.
  2. Installieren Sie im ausführlichen Modus, indem Sie beispielsweise -vvv hinzufügen composer global require "squizlabs/php_codesniffer=*" -vvv
  3. Wenn Sie herausfinden können, wo Composer mit Langsamkeit konfrontiert ist, blieb meine beispielsweise beim Herunterladen von Paketen 5 Minuten lang hängen. Das Herunterladen einer 20-kB-Datei über eine 50-Mbit / s-Verbindung dauerte> 5 Minuten. Dies lag daran, dass die Pakete von packagist über HTTP und nicht über HTTPS heruntergeladen wurden. Durch diese Änderungen an der Konfiguration wurde mein Problem behoben: composer config --global repo.packagist composer https://packagist.org
sgr12
quelle
3
Ich bin neu im Komponisten und versuche, dies für 2 Tage zu beheben. Nachdem ich Ihren Kommentar gelesen und -vvv hinzugefügt habe, hat es endlich funktioniert. 1000 Upvotes
Huy Trịnh
# 3 hat es für mich gelöst. Du bist jetzt mein Held. War schon seit einiger Zeit besorgt, warum es so langsam ist und nur bei einigen Internetverbindungen funktioniert. Vielen Dank!
Andreas Schantl
composer config --global repo.packagist composer https://packagist.org was war das! Genial! 🏆
Rishi Kulshreshtha
13

Dasselbe hier. Weitere Informationen erhalten Sie mit "composer install --profile -vvv". In meinem Fall dauert das Herunterladen einiger JSON-Dateien sehr lange. Sie werden auf meinem Server zwischengespeichert, aber sie werden immer noch bei jedem Composer-Update / Installationsaufruf heruntergeladen.

... 30 Minuten später ...

Es sieht aus wie ein Leistungsproblem @ packagist.org. Jetzt läuft die Composer-Installation innerhalb von 2 Sekunden! Und heruntergeladene JSON-Dateien werden ordnungsgemäß zwischengespeichert.

ppan
quelle
1
"Sie werden auf meinem Server zwischengespeichert, aber immer noch bei jedem Aufruf zum Aktualisieren / Installieren des Komponisten heruntergeladen." DIESES !! Haben Sie eine Lösung für dieses Problem gefunden? Ich habe eine langsame Verbindung und es ist schrecklich, das zu sehen.
Lud
8

Ich bin auf dieses Problem gestoßen, und es hat mich auf eine Kurve gebracht, da ich Xdebug nirgendwo auf meinem Computer installiert habe. Es stellt sich heraus, dass es sich um Fehler im IPv6- Adressierungsmodus handelte. Also zum Testen bin ich gelaufen

curl --ipv4 'https://packagist.org/packages.json'
curl --ipv6 'https://packagist.org/packages.json'

IPv4 wurde durchlaufen, aber IPv6 ist fehlgeschlagen. Am Ende sollten Sie herausfinden, warum Ihr Netzwerk-Stack dies nicht unterstützt, aber in meinem Fall habe ich beschlossen, nur den IPv4-Verkehr zu bevorzugen, bis ich das beheben kann. Unter CentOS habe ich die Datei /etc/gai.conf erstellt / geändert und Folgendes eingefügt:

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

Unter Ubuntu können Sie diese Datei auch bearbeiten und die Zeile auskommentieren

precedence ::ffff:0:0/96  100

Quelle auf Rackspace Community Hub

Aaron Chamberlain
quelle
Nur für eine Notiz, dies schien mir persönlich nicht zu helfen, obwohl ich es erneut simulieren muss, um alle Optionen zu bestätigen, welche davon die Ursache sein könnten.
FantomX1
@ FentomX1 Tut mir leid das zu hören. Deshalb habe ich den Test oben aufgenommen. Wenn Sie beide Curl-Tests durchführen und die Verbindung hergestellt wird, sollten die Änderungen natürlich nicht vorgenommen werden, da Ihr Netzwerk korrekt eingerichtet ist.
Aaron Chamberlain
5

Unter Ubuntu Xenial 16.04 VPS müssen Sie Folgendes tun:

sudo sh -c "echo 'precedence ::ffff:0:0/96 100' >> /etc/gai.conf"
composer global require hirak/prestissimo

Es konfiguriert IPv4 als bevorzugt gegenüber IPv6.

/server/93717/setting-ipv4-as-preferred-protocol-over-ipv6

Liam Mitchell
quelle
Seit ich Prestissimo installiert habe, war meine Komponistengeschwindigkeit ausgezeichnet.
Big Tree
3
Ich kann bestätigen, dass diese Lösung auch für Ubuntu 18.04LTS
Mwangaben
Bitte fügen Sie Ihrer Antwort eine Erklärung hinzu, damit andere daraus lernen können. Was macht diese erste Zeile?
Nico Haase
@NicoHaase Wenn Sie sich die Zeitstempel ansehen, ist diese Antwort tatsächlich eine Antwort auf das von mir beschriebene Problem, aber sie haben es nicht als Kommentar angegeben. Ich habe es sowieso in meine Antwort aufgenommen. Es scheint, dass Packagist IPV6 bevorzugt, aber einige Netzwerke funktionieren immer noch nicht gut damit. In der ersten Zeile wird festgelegt, dass Ihr Linux-Computer IPv4-Adressen bevorzugt und diese zuerst sucht.
Aaron Chamberlain
1

In meinem Fall wurde die Composer-Version, die ich ausgeführt habe, zurückdatiert. Nach der Aktualisierung der Composer-Version selbst war das Problem behoben.

Um die Composer-Version zu aktualisieren, führen Sie sie aus

composer self-update

und dann benötigen Sie das Composer-Paket und Sie sind fertig.

composer require "<package-name>"
sh6210
quelle
Sudo? Wurzel ? Warum ?
Mohamed Elbahja
Entschuldigung Bruder, füge sudo hinzu, wenn du Probleme mit der Erlaubnis hast.
sh6210
oder sollten Sie den Dateimodus und die Eigentümer- / Gruppenberechtigungen korrigieren? anstatt nur SUDO! ohne zu wissen was das bedeutet? definitiv kein FIX.
Mohamed Elbahja
Natürlich können Sie das Problem mit der Eigentümer- / Gruppenberechtigung beheben, indem Sie den Befehl "chown" ausführen, aber Sie können dies auf einmal tun. Meine Hauptaufgabe war es, die Lösung aus meiner Sicht auf einfachste Weise zu zeigen. Es tut mir jedoch leid, wenn meine Worte für Sie keinen Sinn ergeben.
sh6210
@ sh6210 Ermutigen Sie nicht, sudo zu verwenden, wenn Sie Composer verwenden. Die Annahme, dass es ein permissionProblem gibt, ist ein Vorurteil.
dbf
0

Wenn eine der vorherigen Antworten nicht funktioniert, überprüfen Sie, ob Ihre Firewall TCP_OUT an Port 9418 zulässt.

Meine Firewall-Sicherheit war zu scharf. Dies führte dazu, dass Composer so lange dauerte, dass ich nie eine Zeitüberschreitung oder einen Hinweis darauf bekam, dass der Port blockiert war.

Gidomanders
quelle
0

Meins war beim Herunterladen von JSON-Dateien wegen des Antivirus langsam. Einige Virenschutzprogramme scannen den gesamten Webdatenverkehr und die Analyse von JSON-Dateien ist möglicherweise langsam. Versuchen Sie, Ihren AV zu deaktivieren, während Sie Composer ausführen.

Dima L.
quelle
-1

Der beste Weg, dies herauszufinden, besteht darin, Composer Update / Install mit Ausführlichkeit auszuführen. Komponist {install / update} -vvv. Die Verwendung des Flags -h kann Ihnen in Zukunft helfen

Edu
quelle
Bitte teilen Sie eine Erklärung dafür. Das OP führt die Tests mit einer vollständig leeren Liste von Abhängigkeiten aus
Nico Haase
-1

Bearbeiten: Schlussfolgerung: Keine hier aufgeführte Lösung oder scheint im Allgemeinen kugelsicher zu sein. Was hilft schließlich ist in der Regel Komponisten mit inkrementell, erfordert oder nur ein einzelnes Paket zu einem Zeitpunkt unter Verwendung von Entfernen composer require, composer removeBefehl sieht auch Hinzufügen einer „Nicht-Abhängigkeit spezifische“ -Einstellung kann jede Bibliothek wird im Interesse der es der Aktualisierung hinzugefügt / entfernt / Aktualisieren der gesperrten Cache-Konfiguration von composer.json.

Gruppieren Sie meine Erfahrungen mit Antworten von hier und von den fraglichen verlinkten.

Vorher habe ich jede einzelne in dieser Frage erwähnte Lösung bis zu diesem Zeitpunkt ausprobiert. Es half mir jedoch immer noch nicht, obwohl ich versuchte / bemerkte, dass die Installation einer anderen einzelnen Bibliothek sehr schnell war, und untersuchte daher nacheinander die Bibliotheken, die den Flaschenhals verursachen könnten.

1) JA Und ich habe es als Codezeption gefunden."codeception/codeception": "2.4.0",

Es dauerte allein fast 200 Sekunden, obwohl es zusammen mit anderen Bibliotheken manchmal fast 12 Minuten lang lief. Darüber hinaus scheint der Komponist nicht in Echtzeit zu reflektieren, wenn er nach 20 Sekunden Startzeit 0,35 Sekunden usw. ausgibt.

[374.9MiB/173.14s]     39/45:   https://codeload.github.com/sebastianbergmann/php-text-template/legacy.zip/31f8b717e51d9a2afca6c9f046f5d69fc27c8686
[374.9MiB/173.16s]     40/45:   https://codeload.github.com/sebastianbergmann/diff/legacy.zip/720fcc7e9b5cf384ea68d9d930d480907a0c1a29
[374.9MiB/173.17s]     41/45:   https://codeload.github.com/sebastianbergmann/exporter/legacy.zip/68609e1261d215ea5b21b7987539cbfbe156ec3e
[374.9MiB/173.19s]     42/45:   https://codeload.github.com/sebastianbergmann/phpunit-mock-objects/legacy.zip/f9756fd4f43f014cb2dca98deeaaa8ce5500a36e
[374.9MiB/173.20s]     43/45:   https://codeload.github.com/sebastianbergmann/recursion-context/legacy.zip/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8
[374.9MiB/173.23s]     44/45:   https://codeload.github.com/sebastianbergmann/php-code-coverage/legacy.zip/4cab20a326d14de7575a8e235c70d879b569a57a
[374.9MiB/173.24s]     45/45:   https://codeload.github.com/doctrine/instantiator/legacy.zip/ae466f726242e637cebdd526a7d991b9433bacf1
[374.9MiB/173.24s]     Finished: success: 45, skipped: 0, failure: 0, total: 45
[374.8MiB/173.25s] Analyzed 6622 packages to resolve dependencies
[374.8MiB/173.25s] Analyzed 435842 rules to resolve dependencies
[374.8MiB/173.25s] Package operations: 54 installs, 0 updates, 0 removals
[374.8MiB/173.26s] Installs: sebastian/recursion-context:3.0.0, sebastian/exporter:3.1.2, doctrine/instantiator:1.3.0, phpunit/php-text-template:1.2.1, phpunit/phpunit-mock-objects:6.1.2, codeception/stub:1.0.4, sebastian/diff:3.0.2, sebastian/comparator:3.0.2, theseer/tokenizer:1.1.3, sebastian/version:2.0.1, sebastian/environment:3.1.0, sebastian/code-unit-reverse-lookup:1.0.1, phpunit/php-token-stream:3.1.1, phpunit/php-file-iterator:1.4.5, phpunit/php-code-coverage:6.0.5, sebastian/object-reflector:1.1.1, sebastian/object-enumerator:3.0.3, sebastian/global-state:2.0.0, phpunit/php-timer:2.1.2, symfony/polyfill-ctype:v1.17.0, webmozart/assert:1.8.0, phpdocumentor/reflection-common:2.1.0, phpdocumentor/type-resolver:1.1.0, phpdocumentor/reflection-docblock:5.1.0, phpspec/prophecy:v1.10.3, myclabs/deep-copy:1.9.5, sebastian/resource-operations:1.0.0, phar-io/version:1.0.1, phar-io/manifest:1.0.1, phpunit/phpunit:7.1.5, codeception/phpunit-wrapper:7.6.1, symfony/yaml:v4.4.8, behat/gherkin:v4.6.2, symfony/polyfill-mbstring:v1.17.0, symfony/dom-crawler:v4.4.8, symfony/css-selector:v4.4.8, symfony/browser-kit:v4.4.8, symfony/event-dispatcher-contracts:v1.1.7, psr/container:1.0.0, symfony/event-dispatcher:v4.4.8, symfony/service-contracts:v2.0.1, symfony/polyfill-php73:v1.17.0, symfony/console:v4.4.8, symfony/finder:v4.4.8, ralouphie/getallheaders:3.0.3, psr/http-message:1.0.1, guzzlehttp/psr7:1.6.1, guzzlehttp/promises:v1.3.1, symfony/polyfill-php72:v1.17.0, symfony/polyfill-intl-idn:v1.17.0, guzzlehttp/guzzle:6.5.3, symfony/process:v4.4.8, facebook/webdriver:1.7.1, codeception/codeception:2.4.0
[374.8MiB/173.28s]   - Installing sebastian/recursion-context (3.0.0): [374.9MiB/173.28s] Loading from cache[374.9MiB/173.28s]
[374.9MiB/173.28s]  Extracting archive[374.9MiB/173.51s]   - Installing sebastian/exporter (3.1.2): [374.9MiB/173.52s] Loading from cache[374.9MiB/173.52s]
[374.9MiB/173.52s]  Extracting archive[374.9MiB/173.75s]   - Installing doctrine/instantiator (1.3.0): [374.9MiB/173.76s] Loading from cache[374.9MiB/173.76s]
[374.9MiB/173.76s]  Extracting archive[374.9MiB/174.00s]   - Installing phpunit/php-text-template (1.2.1): [374.9MiB/174.00s] Loading from cache[374.9MiB/174.00s]
[374.9MiB/174.00s]  Extracting archive[374.9MiB/174.23s]   - Installing phpunit/phpunit-mock-objects (6.1.2): [374.9MiB/174.23s] Loading from cache[374.9MiB/174.23s]
[374.9MiB/174.23s]  Extracting archive[374.9MiB/174.55s]   - Installing codeception/stub (1.0.4): [374.9MiB/174.56s] Loading from cache[374.9MiB/174.56s]
[374.9MiB/174.56s]  Extracting archive[374.9MiB/174.80s]   - Installing sebastian/diff (3.0.2): [374.9MiB/174.80s] Loading from cache[374.9MiB/174.80s]
[374.9MiB/174.80s]  Extracting archive[374.9MiB/175.07s]   - Installing sebastian/comparator (3.0.2): [374.9MiB/175.07s] Loading from cache[374.9MiB/175.07s]
[374.9MiB/175.07s]  Extracting archive[374.9MiB/175.33s]   - Installing theseer/tokenizer (1.1.3): [374.9MiB/175.33s] Loading from cache[374.9MiB/175.33s]

Der Lauf vorher

 Problem 1
    - Installation request for codeception/codeception 2.4.0 -> satisfiable by codeception/codeception[2.4.0].
    - Conclusion: remove symfony/finder v5.0.8
    - Conclusion: don't install symfony/finder v5.0.8
    - codeception/codeception 2.4.0 requires symfony/finder >=2.7 <5.0 -> satisfiable by symfony/finder[v2.7.0, v2.7.1, v2.7.10, v2.7.11, v2.7.12, v2.7.13, v2.7.14, v2.7.15, v2.7.16, v2.7.17, v2.7.18, v2.7.19, v2.7.2, v2.7.20, v2.7.21, v2.7.22, v2.7.23, v2.7.24, v2.7.25, v2.7.26, v2.7.27, v2.7.28, v2.7.29, v2.7.3, v2.7.30, v2.7.31, v2.7.32, v2.7.33, v2.7.34, v2.7.35, v2.7.36, v2.7.37, v2.7.38, v2.7.39, v2.7.4, v2.7.40, v2.7.41, v2.7.42, v2.7.43, v2.7.44, v2.7.45, v2.7.46, v2.7.47, v2.7.48, v2.7.49, v2.7.5, v2.7.50, v2.7.51, v2.7.6, v2.7.7, v2.7.8, v2.7.9, v2.8.0, v2.8.1, v2.8.10, v2.8.11, v2.8.12, v2.8.13, v2.8.14, v2.8.15, v2.8.16, v2.8.17, v2.8.18, v2.8.19, v2.8.2, v2.8.20, v2.8.21, v2.8.22, v2.8.23, v2.8.24, v2.8.25, v2.8.26, v2.8.27, v2.8.28, v2.8.29, v2.8.3, v2.8.30, v2.8.31, v2.8.32, v2.8.33, v2.8.34, v2.8.35, v2.8.36, v2.8.37, v2.8.38, v2.8.39, v2.8.4, v2.8.40, v2.8.41, v2.8.42, v2.8.43, v2.8.44, v2.8.45, v2.8.46, v2.8.47, v2.8.48, v2.8.49, v2.8.5, v2.8.50, v2.8.52, v2.8.6, v2.8.7, v2.8.8, v2.8.9, v3.0.0, v3.0.1, v3.0.2, v3.0.3, v3.0.4, v3.0.5, v3.0.6, v3.0.7, v3.0.8, v3.0.9, v3.1.0, v3.1.1, v3.1.10, v3.1.2, v3.1.3, v3.1.4, v3.1.5, v3.1.6, v3.1.7, v3.1.8, v3.1.9, v3.2.0, v3.2.1, v3.2.10, v3.2.11, v3.2.12, v3.2.13, v3.2.14, v3.2.2, v3.2.3, v3.2.4, v3.2.5, v3.2.6, v3.2.7, v3.2.8, v3.2.9, v3.3.0, v3.3.1, v3.3.10, v3.3.11, v3.3.12, v3.3.13, v3.3.14, v3.3.15, v3.3.16, v3.3.17, v3.3.18, v3.3.2, v3.3.3, v3.3.4, v3.3.5, v3.3.6, v3.3.7, v3.3.8, v3.3.9, v3.4.0, v3.4.1, v3.4.10, v3.4.11, v3.4.12, v3.4.13, v3.4.14, v3.4.15, v3.4.16, v3.4.17, v3.4.18, v3.4.19, v3.4.2, v3.4.20, v3.4.21, v3.4.22, v3.4.23, v3.4.24, v3.4.25, v3.4.26, v3.4.27, v3.4.28, v3.4.29, v3.4.3, v3.4.30, v3.4.31, v3.4.32, v3.4.33, v3.4.34, v3.4.35, v3.4.36, v3.4.37, v3.4.38, v3.4.39, v3.4.4, v3.4.40, v3.4.5, v3.4.6, v3.4.7, v3.4.8, v3.4.9, v4.0.0, v4.0.1, v4.0.10, v4.0.11, v4.0.12, v4.0.13, v4.0.14, v4.0.15, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7, v4.0.8, v4.0.9, v4.1.0, v4.1.1, v4.1.10, v4.1.11, v4.1.12, v4.1.2, v4.1.3, v4.1.4, v4.1.5, v4.1.6, v4.1.7, v4.1.8, v4.1.9, v4.2.0, v4.2.1, v4.2.10, v4.2.11, v4.2.12, v4.2.2, v4.2.3, v4.2.4, v4.2.5, v4.2.6, v4.2.7, v4.2.8, v4.2.9, v4.3.0, v4.3.1, v4.3.10, v4.3.11, v4.3.2, v4.3.3, v4.3.4, v4.3.5, v4.3.6, v4.3.7, v4.3.8, v4.3.9, v4.4.0, v4.4.1, v4.4.2, v4.4.3, v4.4.4, v4.4.5, v4.4.6, v4.4.7, v4.4.8].
    - Can only install one of: symfony/finder[v2.7.0, v5.0.8].
    - Can only install one of: symfony/finder[v2.7.1, v5.0.8].
    - Can only install one of: symfony/finder[v2.7.10, v5.0.8].
    - Can only install one of: symfony/finder[v2.7.11, v5.0.8].

2) JA Übrigens, Prestissimo, wie ich bereits erwähnte, wurde bereits angewendet und es schien zu helfen, da auf einem anderen sehr schnellen Computer, der ohne Codezeption viel schnelleres Internet hat, die Installation 5-mal länger dauerte, 518 Sekunden, möglicherweise aufgrund von Prestissimo oder anderen Ratschlägen hier dauerte es 110 Sekunden.

composer global require hirak/prestissimo

3) JA Windows ist langsam, ebenso wie virtualisierte Ordner von Windows bis Linux. Das Ausführen außerhalb des freigegebenen Ordners unter Linux schien dies etwa zweimal zu beschleunigen. Obwohl es an Cache liegen könnte.

4) NEIN

    "process-timeout": 1800,

ist pro einzelnen Prozess wie Git Checkout und schien überhaupt nicht zu helfen, auch nicht auf 10s eingestellt, da es bereits sehr groß war. Es hilft vielleicht nur, wenn ein Dienst komplett ausfällt.

5) JA Die Installation mit entferntem oder leerem Herstellerordner = frisch scheint erheblich schneller zu sein (ca. 1 Minute und länger) als das Hinzufügen zu den Herstellerdateien und anderen darin enthaltenen Paketen

6) YES scheint unter Ubuntu18 apache2 ohne xdebug-eigenes Image langsamer zu sein als unter Debian10 php-fpm, selbst mit xdebug im Yii2-Starter-Kit, aus irgendeinem Grund etwa zweimal langsamer, cat /etc/*-releaseum die Linux-Distribution herauszufinden

7) NO, php -ddefault_socket_timeout=1 /usr/local/bin/composer --verbose --profile install das hier erwähnt wurde, schien trotz des --prefer-dist-Flags und des dort erwähnten IP v6 v v4-Protokolls nicht zu helfen .

8) NEIN Die Installation von zip scheint nicht zu helfen. Die PHP-Installation hatte zip vorinstalliert. Sie beschwerte sich immer noch, dass sie erst als Linux-Pakete installiert wurde, aber der Prozess in einer einzelnen Simulation wurde um 100 Sekunden von 650 auf 750 Sekunden verlangsamt. Gleiche Umgebungsbedingungen. As there is no 'unzip' command installed zip files are being unpacked using the PHP zip extension https://stackoverflow.com/a/51208804/3419535 Testen unter Bedingungen ohne Cache--no-cache

9) JA entfernen "minimum-stability ": "dev",

10) JA Verwenden Sie Preferen-Dist composer require robmorgan/phinx:@dev --prefer-dist -vvv --profile (die Verwendung eines Require-Befehls als Beispiel, da die Verwendung von Partial-Require-Befehlen, wie oben erwähnt, anstelle einer vollständigen Installation über einen Installationsbefehl eine der bedeutendsten Beschleunigungen zu sein scheint und das Erfordernis von @ Abweichungen von den vorherigen Punkten, wenn sie minimum-stability: devnicht generisch auf alle Abhängigkeiten angewendet werden, scheinen harmlos zu sein, wenn sie auf Einzelfallbasis (Abhängigkeitsbasis) verwendet werden.

FantomX1
quelle
Wie hängt das mit der gegebenen Frage zusammen? Gemäß der Problembeschreibung ist im OP-Problem keine einzige Abhängigkeit aufgeführt
Nico Haase,
Das Problem sollte generisch angegangen werden. Ich habe versucht, alles zusammenzufassen, was mir geholfen hat, und einige andere Lösungen von anderswo hinzugefügt. Nicht immer nur für das, was der Fragesteller verlangt, hier kommen Tausende anderer Benutzerszenarien. Die meisten Antworten sind generisch. Composer Require ist im Grunde nur ein Teil der Composer-Installation. Nur weil ich in der Antwort auch ein Wort / einen Befehl 'require' verwendet habe, heißt das nicht, dass es nicht auch für die Installation gilt, aber wenn Sie möchten, kann ich dieses Wort entfernen. 'Es ist keine einzige Abhängigkeit aufgeführt', sondern wie es ist Wenn Sie die Composer-Installation ändern, geht es nur um Abhängigkeiten.
FantomX1
Ich bin nur wenige Minuten später von 1 Punkt auf -1 gegangen, weil ich Ihnen geantwortet habe, vielleicht weil Sie mich zuvor gewählt haben. Sagen Sie mir, dass die gewählte Antwort prestistimo oder die Verwendung von ipv 6 oder das Deaktivieren von xdebug nicht generisch ist und nicht für einen konkreten Composer-Befehl erforderlich ist. Ich entschuldige mich für ein paar schnelle Änderungen, aber ich verwende es auch als persönliches Wiki, und ich habe nicht einmal einen konkreten Abhängigkeitsnamen aufgelistet, sondern werde ihn anpassen. Wenn Sie nicht mögen, dass ich einen Tippfehler gemacht habe, erwähnen Sie das, aber nicht generisch zu sein macht keinen Sinn. Ich habe einen Befehl 'require' als Referenz verwendet, da die Verwendung von 'require' eine der Lösungen selbst ist.
FantomX1
1
Das OP fragte, warum Composer langsam und ohne Abhängigkeiten ist - auch wenn Ihre Liste in vielen anderen Situationen hilfreich sein könnte, sehe ich keine Verbindung zu der gegebenen Frage
Nico Haase
2
Prestissimo hilft auch bei leeren Anforderungslisten - einige Dateien werden vom Komponisten unabhängig von der Abhängigkeitsliste heruntergeladen, sodass auch hier der parallele Download hilfreich ist.
rob006
-1

Falls Sie Ihre composer.lock-Datei gelöscht haben und dann gegangen sind composer install, wird das Herunterladen von Abhängigkeiten zu langsam. Wenn dies der Fall ist, verwenden Sie den composer updateBefehl und er kann Ihnen oder anderen helfen.

NadZ
quelle