npm搜索需要很长时间

时间:2014-12-26 20:40:31

标签: npm

一般来说,npm搜索行为很奇怪,需要很长时间,并且会不时地按顺序和时间变化。

我第一次写

$ npm search jquery

花了两分多钟。后续搜索大约需要30秒。有时我会在http请求之前得到匹配,有时反过来:

首先匹配结果

$ npm search jquery.appendgrid
NAME               DESCRIPTION                                         AUTHOR      DATE              VERSION KEYWORDS
jquery.appendgrid  appendGrid - The dynamic table input jQuery plugin  =hkalbertl  2014-12-21 08:09  1.5.1  jquery-plugin ui header-detail master-d
npm http GET https://registry.npmjs.org/-/all/since?stale=update_after&startkey=1419625615355
npm http 200 https://registry.npmjs.org/-/all/since?stale=update_after&startkey=1419625615355

最后匹配结果

$ npm search jquery.appendgrid
npm http GET https://registry.npmjs.org/-/all/since?stale=update_after&startkey=1419625643062
npm http 200 https://registry.npmjs.org/-/all/since?stale=update_after&startkey=1419625643062
NAME               DESCRIPTION                                         AUTHOR      DATE              VERSION KEYWORDS
jquery.appendgrid  appendGrid - The dynamic table input jQuery plugin  =hkalbertl  2014-12-21 08:09  1.5.1  jquery-plugin ui header-detail master-d

在任何一种情况下,大约需要30秒。由于它花了不到最初的两分钟,我猜有些东西已被缓存,但它仍然会产生一个http请求,但它仍然需要很长时间。这不是第一个http线和第二个http线之间的时间,只需要1-2秒。但是前后都有很多等待时间。

发生了什么事,我可以加快速度吗?

3 个答案:

答案 0 :(得分:17)

一年前,当编写该教程时,npm发布的包较少。目前有超过100,000。为了执行npm searchnpm下载描述所有包的JSON文件,对其进行粗略索引,然后搜索所有包描述。

结果是npm search作为本地命令现在基本上被破坏了 - 它完成了,但非常慢,并且它创建了一个惊人的大文件(60MB)。

目前建议的解决方法是使用https://www.npmjs.com/

上的在线搜索工具

答案 1 :(得分:1)

npm回购不应该很慢。有些人在这里说它有超过100,000个包...它实际上有超过165.000但是这个数字对于任何数据库来说都非常小。我相信他们使用的CouchDB非常快。 在任何情况下,如果您没有获得所需的结果,您可以随时使用其他替代搜索网站:

答案 2 :(得分:0)

我也遇到过这种情况,我怀疑npm会更新本地缓存的包列表。长延迟可能是获取回购数据。

刚才我的第一次搜索花了35秒(一个小cpu,一个漫长的等待,然后是10秒的固态cpu)。后续搜索需要11秒,CPU利用率为97%。

编辑:AMD 3.6 GHz Phenom II上的10秒CPU,相应地调整硬件。