2016-10-13 2 views
1

내 노드 응용 프로그램 (webpack dev 서버를 통해 실행 중)이 지속적으로 60 % CPU를 사용하고 있습니다. cpu 프로필에서 _proc_listpidspath으로 전화하는 것처럼 보입니다. 이 함수가 무엇인지에 대한 모든 힌트와 노드 라이브러리가 이것을 호출하는 방법을 찾는 방법.노드 응용 프로그램의 CPU 사용률이 높음

감사합니다.

아래 프로필을 참조하십시오.

Code move event for unknown code: 0x19cac90226c0 
Code move event for unknown code: 0x19cac90b3360 
Code move event for unknown code: 0x19caca55d3a0 
Statistical profiling result from isolate-0x102004c00-v8.log, (209273 ticks, 2592 unaccounted, 0 excluded). 

[Shared libraries]: 
    ticks total nonlib name 
    6896 3.3%   /usr/lib/system/libsystem_c.dylib 
    285 0.1%   /usr/lib/system/libsystem_pthread.dylib 

[JavaScript]: 
    ticks total nonlib name 
    332 0.2% 0.2% KeyedLoadIC: A keyed load IC from the snapshot {1} 
    287 0.1% 0.1% Stub: LoadICStub 
    .... 
    .... 
    [Summary]: 
    ticks total nonlib name 
    5271 2.5% 2.6% JavaScript 
    194229 92.8% 96.1% C++ 
    1481 0.7% 0.7% GC 
    7181 3.4%   Shared libraries 
    2592 1.2%   Unaccounted 
[C++]: 
    ticks total nonlib name 
162560 77.7% 80.4% _proc_listpidspath 
    4417 2.1% 2.2% _uv_timer_stop 
    1683 0.8% 0.8% _heap_node_swap 
    1274 0.6% 0.6% _timer_cb 
    1006 0.5% 0.5% _hex 
    762 0.4% 0.4% _uv_fs_stat 
    704 0.3% 0.3% _mach_vm_map 
    677 0.3% 0.3% _szone_check_all 
    654 0.3% 0.3% _pthread_join$NOCANCEL 
    637 0.3% 0.3% __pthread_exit 
    583 0.3% 0.3% _uv__run_timers 
    583 0.3% 0.3% _dec 
    ...... 
    ...... 

[Bottom up (heavy) profile]: 
Note: percentage shows a share of a particular caller in the total 
amount of its parent calls. 
Callers occupying less than 2.0% are not shown. 

    ticks parent name 
162560 77.7% _proc_listpidspath 

    6896 3.3% /usr/lib/system/libsystem_c.dylib 

    4417 2.1% _uv_timer_stop 

편집 :

나는 그것이 일어날 때이를 분리 할 수있다. 어제 yarn을 사용하기 시작했습니다. 내가 제거하면 이제 내 node_modules 내가 제거 할 경우 NPM 클라이언트를 통해, 내가

node_modules ❯❯❯ find . -print | wc -l                                 master 
    43058 

node_modules 내부의 파일 수를 볼 수있는 모든 deps를 설치 npm -i을 실행 node_modules하고는,

node_modules ❯❯❯ find . -print | wc -l                                 ⏎ master 
    32138 
~/.yarn/bin/yarn.js를 실행

그래서, cli에 의해 설치된 파일에는 차이가 있으며, 실의 설치 횟수는 더 적습니다. 하지만 원사가있는 CPU는 유휴 상태 (웹 모드에서는 서버)에서 80 %, npm으로 1 %입니다 !!

+0

무슨 플랫폼에서 실행되는? – jlengrand

+1

[this] (http://opensource.apple.com//source/Libc/Libc-498/darwin/proc_listpidspath.c) 나는 fs.watch() 또는 'fs.watchFile()'. – robertklep

+1

수정 사항을 참조하십시오. 아마도 webpack watch이고, OS는 Mac OSX입니다. – bsr

답변

0

이것은 chokidar이 (가) 원사에 의해 스킵되어있을 수 있습니다. 이러한 문제는 yarnpkg 추적기에 공개되어 있으며 수정을 기다리고 있습니다.

https://github.com/yarnpkg/yarn/issues/1009 https://github.com/yarnpkg/yarn/issues/629

+0

이것은 적절하게 형식화 된 답변이 아닙니다. 링크 전용 해상도는 사라질 수 있으며 향후 이점을 제공하지 못할 수 있습니다. 당신은 적어도 대답에 대한 최소한의 해결책을 제공합니다. – xaxxon

관련 문제