PHP 编写器:调试自定义存储库包的缓存未命中.json



我正在使用带有自定义存储库的PHP composer。由于超出我自己调试能力的原因,composer每次运行命令时都会下载存储库的packages.json

$ composer.phar --profile -vvv --no-dev --repository-url=http://packages.firegento.com create-project magento-hackathon/magento-composer-installer .
[4.2MB/0.05s] Downloading http://packages.firegento.com/packages.json
[70.6MB/152.18s] Writing /Users/alanstorm/.composer/cache/repo/http---packages.firegento.com/packages.json into cache
...
$ composer.phar --profile -vvv update
[3.7MB/0.01s] Reading ./composer.json
[4.2MB/0.02s] Executing command (CWD): git describe --exact-match --tags
[4.4MB/0.03s] Executing command (CWD): git branch --no-color --no-abbrev -v
[4.5MB/0.05s] Executing command (CWD): hg branch
[4.5MB/0.12s] Executing command (CWD): svn info --xml
[6.6MB/0.17s] Loading composer repositories with package information
[6.8MB/0.19s] Downloading http://packages.firegento.com/packages.json
[73.2MB/125.50s] Writing /Users/alanstorm/.composer/cache/repo/http---packages.firegento.com/packages.json into cache

第一次读取为152.18s秒,第二次读取为125.50s秒。

这与标准包装学家packages.json的行为背道而驰,编写器似乎下载一次,然后从缓存中读取。

如何进一步调试此缓存未命中?我对composer的了解还不够,无法快速追踪"我需要从缓存中获取这个吗"逻辑所在的位置,而且我无法控制自定义存储库服务器。

此外,我可能对缓存命中/未命中理论完全错了,所以我们很欣赏关于这种缓慢行为的任何其他想法。

Composer在设计上不缓存主packages.json文件,所以我关于缓存未命中的问题是无效的。如果你看到packages.json下载缓慢,你最好的选择是

  1. 在提供此文件的服务器上启用gzip压缩。

  2. packages.json文件拆分为多个文件。

相关内容

  • 没有找到相关文章

最新更新