2016-10-13 7 views
1

私のノードアプリケーション(webpack dev server経由)は、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のクライアントを介してすべてのDEPSをインストールするnpm -iを実行する場合、私は削除した場合、私は

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

としてnode_modules内のファイル数を参照してください、node_modules~/.yarn/bin/yarn.jsを走った、そして

node_modules ❯❯❯ find . -print | wc -l                                 ⏎ master 
    32138 

なので、cliとインストールされたファイルの両方でインストールされるファイルに違いがあります。しかし、糸を使ったCPUは、アイドル状態で80%、ウォッチモードではwebpackサーバーで、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の時計で、OSはMac OSXです。 – bsr

答えて

0

これは、chokidarが糸でスキップされている可能性があります。 これらの問題は、yarnpkgトラッカーで公開されており、修正を待っています。

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

+0

これは、適切に書式設定された回答ではありません。リンクのみの解像度は消え去り、将来的には利益をもたらさない可能性があります。あなたは少なくとも答えに最小限の解決策を提供しています。 – xaxxon