0

JavaScriptでは、配列を持つオブジェクトがあり、その配列のスライスと別の配列との連結を取得するメソッドがあります。

そのメソッドを同じ関数で複数回実行して常に同じ値を返す場合、最初の実行後のパフォーマンスは速くなりますか(結果はCPUキャッシュにキャッシュされるため)?

4

4 に答える 4

1

もちろん、答えはここにあります。関数の目的は、いくつかのパラメーターを取り、値を返すことであるためです。関数を呼び出すたびにすべてのパラメーターが異なる可能性があり、同じであっても結果が異なる可能性があります。また、関数を呼び出すたびに同じ結果が返される場合は、アクションまたは原因が発生する可能性があるため、結果が異なる可能性があります。他の場所でのいくつかの変更、パーサーによる結果のキャッシュはバグのある考えです。

乾杯

于 2012-10-30T19:58:28.970 に答える
1

この質問に対する一般的な答えはNOだと思います!JavaScriptにはキャッシュがなく、JavaScriptで制御できるCPUキャッシングはありません。何かをキャッシュしたりパフォーマンスを向上させたりする必要がある場合は、自分でプログラムする必要があります。

この小さな例を参照してください:http: //jsperf.com/cachingjq

于 2012-10-30T20:00:56.770 に答える
1

多分。

ここでは、見るべきキャッシュのレベルがかなりたくさんあります。プロセッサだけでも複数のキャッシュがあります。しかし、基本的には、それらについて多くを語ることはできません。それらは異なるサイズを持っているかもしれません、例えばあなたがその間に他に何をするか、そして関数がどれくらいの長さであるかなどはすべてこれに影響を与えます。これは、Javascriptで関数呼び出しを呼び出すレベルでは機能しませんが、はるかに低いレベルで機能することにも注意してください。ただし、関数の実行時間から時間を短縮できる場合があります。あまり目立たないと思いますが、結局、あまり言えません。

最後に、javascript自体があります。標準によれば、そのようなキャッシングはありません。ただし、標準では奇妙なキャッシュも禁止されていないため、いつの日かそのようなブラウザが存在する可能性があります(現在は存在しないと思います)。

結局のところ、基本的な答えは次のとおりです。目立った方法ではありません。ただし、実際にはキャッシュによって速度が向上する可能性があり、常に言うのは難しいです。

于 2012-10-30T20:03:33.210 に答える
0

いいえ、手動で(またはフレームワークを使用して)結果をメモ化する必要があります:Javascriptメモ化説明?

于 2012-10-30T19:58:36.130 に答える