タグ付けされた質問 「performance」

コードおよびアプリケーション効率の測定または改善に関する質問。

9
requestAnimationFrameでfpsを制御しますか?
どうやら requestAnimationFrameは、事実をアニメーション化するための事実上の方法のです。それはほとんどの場合私にとってはうまくいきましたが、今私はいくつかのキャンバスアニメーションを実行しようとしていて、私は疑問に思っていました。私はrAFの目的が一貫してスムーズなアニメーションのためであることを理解しており、アニメーションが途切れる危険を冒す可能性がありますが、今のところ大幅に異なる速度でかなり恣意的に実行されているようです。どういうわけか。 私は使用しますsetIntervalが、rAFが提供する最適化が必要です(特にタブにフォーカスがあると自動的に停止します)。 誰かが私のコードを確認したい場合、それはほとんどです: animateFlash: function() { ctx_fg.clearRect(0,0,canvasWidth,canvasHeight); ctx_fg.fillStyle = 'rgba(177,39,116,1)'; ctx_fg.strokeStyle = 'none'; ctx_fg.beginPath(); for(var i in nodes) { nodes[i].drawFlash(); } ctx_fg.fill(); ctx_fg.closePath(); var instance = this; var rafID = requestAnimationFrame(function(){ instance.animateFlash(); }) var unfinishedNodes = nodes.filter(function(elem){ return elem.timer < timerMax; }); if(unfinishedNodes.length === 0) { console.log("done"); cancelAnimationFrame(rafID); instance.animate(); …

8
ToList()を呼び出すとパフォーマンスに影響がありますか?
を使用する場合ToList()、考慮する必要があるパフォーマンスへの影響はありますか? 私はディレクトリからファイルを取得するためのクエリを作成していました、それはクエリです: string[] imageArray = Directory.GetFiles(directory); しかし、List<>代わりに一緒に仕事をしたいので、私は中に入れることにしました... List<string> imageList = Directory.GetFiles(directory).ToList(); それで、このような変換を行うことを決定するときに考慮すべき、または多数のファイルを処理するときにのみ考慮すべき、ある種のパフォーマンスへの影響がありますか?これは無視できる変換ですか?
139 c#  arrays  performance  list 

18
SQL Server SELECT LAST N Rows
これは既知の質問ですが、私が見つけた最良の解決策は次のようなものです: SELECT TOP N * FROM MyTable ORDER BY Id DESC 行の多いテーブルがあります。時間がかかるため、このクエリを使用することはできません。では、ORDER BYを使用せずに最後のN行を選択するにはどうすればよいですか? 編集 この質問の重複した質問で申し訳ありません

10
整数のJavaで対数の底2をどのように計算しますか?
次の関数を使用して、整数の2を底とする対数を計算します。 public static int log2(int n){ if(n <= 0) throw new IllegalArgumentException(); return 31 - Integer.numberOfLeadingZeros(n); } 最適なパフォーマンスはありますか? 誰かがその目的のために準備ができているJ2SE API関数を知っていますか? UPD1 驚いたことに、浮動小数点演算は整数演算よりも高速に見えます。 UPD2 コメントのため、より詳細な調査を行います。 UPD3 私の整数演算関数は、Math.log(n)/Math.log(2)よりも10倍高速です。

4
「* apply」ファミリーは本当にベクトル化されていませんか?
したがって、私たちはすべてのRの新規ユーザーに「applyベクトル化されていません。パトリックバーンズRインフェルノサークル4をチェックしてください」と言っています(引用します)。 一般的な反射は、適用ファミリーで関数を使用することです。これは ベクトル化ではなく、ループ非表示です。apply関数の定義にはforループがあります。lapply関数はループを埋めますが、実行時間は明示的なforループとほぼ同じになる傾向があります。 実際、applyソースコードをざっと見てみると、ループがわかります。 grep("for", capture.output(getAnywhere("apply")), value = TRUE) ## [1] " for (i in 1L:d2) {" " else for (i in 1L:d2) {" これまでのところ、わかりましたが、見てみるとlapply、vapply実際にはまったく異なる画像が表示されます。 lapply ## function (X, FUN, ...) ## { ## FUN <- match.fun(FUN) ## if (!is.vector(X) || is.object(X)) ## X <- as.list(X) ## .Internal(lapply(X, FUN)) ## …

12
Chromeデベロッパーツールからデータをエクスポートする
ページ読み込み時のChromeによるネットワーク分析 このデータをMicrosoft Excelにエクスポートして、異なる時間に読み込まれたときに同様のデータのリストを取得できるようにしたいと考えています。特にページを比較したい場合は、ページを1回ロードしても、あまり意味がありません。 ツールまたはクロム拡張を介してこれを行うことは可能ですか?


4
Ruby配列find_firstオブジェクト?
Arrayドキュメントに何か不足していますか?特定の条件を満たすオブジェクトを1つまで含む配列があります。そのオブジェクトを効率的に見つけたいのですが。ドキュメントから私が持っている最高のアイデアはこれです: candidates = my_array.select { |e| e.satisfies_condition? } found_it = candidates.first if !candidates.empty? しかし、私は2つの理由で満足していません。 select最初のヒットの後で保釈できたとしても、それでアレイ全体をトラバースできました。 候補を平坦化するために、(条件付きの)コード行が必要でした。 どちらの操作も、満足のいくオブジェクトが0または1あることを事前に認識しているため、無駄が多くなります。 私が欲しいのは次のようなものです: array.find_first(block) これは、nil、またはブロックがtrueと評価された最初のオブジェクトを返し、そのオブジェクトでの走査を終了します。 これを自分で書かなければなりませんか?Arrayの他のすばらしいメソッドはすべて、私はそれがそこにあると考えさせ、私はそれを目にしていません。
135 ruby  arrays  performance  find 

5
PHPでのFORとFOREACHのパフォーマンス
まず、アプリケーションの90%でパフォーマンスの違いはまったく無関係であることを理解していますが、どちらがより高速な構成であるかを知る必要があります。それと... 現在ネット上で入手できる情報は混乱を招きます。多くの人がforeachは悪いと言いますが、反復子を使用して配列トラバーサルの記述を単純化することを想定しているため、技術的にはより高速であるはずです。イテレータ。これも高速であると思われますが、PHPでも明らかに非常に遅いです(または、これはPHPのものではありませんか?)。配列関数について話しています。next()、prev()、reset()など、関数のように見えるPHP言語機能の1つではない場合でも、 これを少し絞り込むと、配列を1以上のステップでトラバースすることには興味がありません(負のステップもありません。つまり、反復を逆にします)。また、任意のポイントとの間のトラバーサルには興味がなく、長さは0です。また、1000個を超えるキーを持つ配列の操作が定期的に発生することはありませんが、アプリケーションのロジックで配列が複数回トラバースされるのがわかります。また、操作に関しては、主に文字列操作とエコーのみです。 ここにいくつかの参照サイトがあります: http : //www.phpbench.com/ http://www.php.lt/benchmark/phpbench.php 私がどこでも聞くもの: foreach遅いため、for/ whileが速い PHP foreachは反復する配列をコピーします。それをより速くするには、参照を使用する必要があります このようなコード:より高速です$key = array_keys($aHash); $size = sizeOf($key); for ($i=0; $i < $size; $i++)foreach これが私の問題です。私は次のテストスクリプトを作成しました:http : //pastebin.com/1ZgK07USそして、スクリプトを何度実行しても、次のような結果が得られます。 foreach 1.1438131332397 foreach (using reference) 1.2919359207153 for 1.4262869358063 foreach (hash table) 1.5696921348572 for (hash table) 2.4778981208801 要するに: foreachforeach参照よりも速い foreach より速い for foreachforハッシュテーブルよりも高速 …

13
95%の場合の値が0または1の場合の非常に大きな配列でのランダムアクセスの最適化
非常に大きな配列でのランダムアクセスの最適化の可能性はありますuint8_tか? uint8_t MyArray[10000000]; 配列の任意の位置の値が 0または1のための95%の全ての症例の、 2中4%の症例、 他の1%のケースでは3から255の間ですか? それで、uint8_tこれに使用する配列よりも良いものはありますか?配列全体をランダムな順序でループするのは可能な限り迅速である必要があり、これはRAM帯域幅で非常に重いため、複数のスレッドが異なる配列に対して同時にそれを行う場合、現在はRAM帯域幅全体です。すぐに飽和します。 5%を除くほとんどすべての値が0または1であることが実際にわかっている場合、そのような大きな配列(10 MB)を持つことは非常に非効率だと感じているので、質問します。したがって、配列内のすべての値の95%実際には、8ビットではなく1ビットしか必要ありません。これにより、メモリ使用量がほぼ1桁削減されます。これに必要なRAM帯域幅を大幅に削減し、結果としてランダムアクセスの速度を大幅に向上させる、よりメモリ効率の高いソリューションが必要だと感じています。

7
コンパイラが予測可能な加算ループを乗算に最適化できない(またはできない)のはなぜですか?
これは、質問に対するMysticialの素晴らしい答えを読んでいるときに思い浮かんだ質問です。なぜ、ソートされていない配列よりもソートされた配列を処理する方が速いのですか? 関連するタイプのコンテキスト: const unsigned arraySize = 32768; int data[arraySize]; long long sum = 0; 彼の答えで彼はIntel Compiler(ICC)がこれを最適化すると説明しています: for (int i = 0; i < 100000; ++i) for (int c = 0; c < arraySize; ++c) if (data[c] >= 128) sum += data[c]; ...これと同等のものに: for (int c = 0; c < arraySize; …

8
C ++と比較してDはどれくらい速いですか?
私はDのいくつかの機能が好きですが、ランタイムのペナルティが付いていれば興味がありますか? 比較のために、C ++とDの両方で多くの短いベクトルのスカラー積を計算する単純なプログラムを実装しました。結果は驚くべきものです。 D:18.9秒[最終的な実行時間については下記を参照] C ++:3.8秒 C ++は本当に5倍近く高速ですか、それともDプログラムでミスを犯しましたか? C ++をg ++ -O3(gcc-snapshot 2011-02-19)でコンパイルし、Dをdmd -O(dmd 2.052)で中程度の最近のLinuxデスクトップでコンパイルしました。結果は複数の実行で再現可能であり、標準偏差は無視できます。 ここにC ++プログラム: #include <iostream> #include <random> #include <chrono> #include <string> #include <vector> #include <array> typedef std::chrono::duration<long, std::ratio<1, 1000>> millisecs; template <typename _T> long time_since(std::chrono::time_point<_T>& time) { long tm = std::chrono::duration_cast<millisecs>( std::chrono::system_clock::now() - time).count(); time = …
133 c++  performance  runtime  d 

3
Apache Spark:マップvs mapPartitions?
RDD mapとmapPartitionsメソッドの違いは何ですか?そして、のようにflatMap動作しますか?ありがとう。mapmapPartitions (編集)つまり、(意味的にまたは実行に関して)違いは何ですか def map[A, B](rdd: RDD[A], fn: (A => B)) (implicit a: Manifest[A], b: Manifest[B]): RDD[B] = { rdd.mapPartitions({ iter: Iterator[A] => for (i <- iter) yield fn(i) }, preservesPartitioning = true) } そして: def map[A, B](rdd: RDD[A], fn: (A => B)) (implicit a: Manifest[A], b: Manifest[B]): RDD[B] = …

3
小さなリストよりも小さな文字列を反復するのが遅いのはなぜですか?
私はtimeitで遊んでいて、小さな文字列に対して単純なリストの理解を行うと、小さな単一の文字列のリストに対して同じ操作を行うよりも時間がかかることに気づきました。説明はありますか?ほぼ1.35倍の時間です。 >>> from timeit import timeit >>> timeit("[x for x in 'abc']") 2.0691067844831528 >>> timeit("[x for x in ['a', 'b', 'c']]") 1.5286479570345861 これを引き起こしている下位レベルで何が起こっていますか?

10
デバッグとリリースのパフォーマンス
次の段落に遭遇しました: 「Visual StudioでコードをコンパイルするときにIDEでデバッグとリリースを設定しても、パフォーマンスにほとんど違いはありません。生成されたコードはほとんど同じです。C#コンパイラーは実際には最適化を行いません。C#コンパイラはIL ...を吐き出すだけで、実行時にすべての最適化を行うのはJITerです。JITerにはデバッグ/リリースモードがあり、パフォーマンスに大きな違いをもたらします。ただし、プロジェクトのデバッグ構成とリリース構成のどちらを実行しても、デバッガーが接続されているかどうかに関係しません。」 ソースはこちら、ポッドキャストはこちらです。 誰かが実際にこれを証明できるマイクロソフトの記事に私を導くことができますか? 「C#デバッグvsリリースパフォーマンス」をグーグルすると、ほとんどの場合、「デバッグでパフォーマンスに大きな影響がある」、「リリースが最適化されている」、「デバッグを本番環境にデプロイしない」という結果が返されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.