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

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

8
JavaScriptオブジェクトをすばやくクリアする方法は?
JavaScript配列を使用すると、1つの割り当てでそれを空の状態にリセットできます。 array.length = 0; これにより、配列が空になり、再利用の準備が整います。私が理解している限り、単一の「操作」、つまり一定の時間です。 JSオブジェクトをクリアする同様の方法はありますか?私はそれらを削除してフィールドを反復できることを知っています: for (var prop in obj) { if (obj.hasOwnProperty(prop)) { delete obj[prop]; } } しかし、これは線形の複雑さを持っています。 オブジェクトを捨てて新しいオブジェクトを作成することもできます。 obj = {}; しかし、新しいオブジェクトを「無差別」に作成すると、IE6のガベージコレクションで問題が発生します。(ここに記載されているように)


1
doubleを32ビットintに丸める高速な方法の説明
Luaのソースコードを読んだとき、Luaはa macroを使用してa doubleを32ビットに丸めることに気付きましたint。を抽出するmacroと、次のようになります。 union i_cast {double d; int i[2]}; #define double2int(i, d, t) \ {volatile union i_cast u; u.d = (d) + 6755399441055744.0; \ (i) = (t)u.i[ENDIANLOC];} ここでENDIANLOCは、リトルエンディアン、ビッグエンディアンのエンディアンネスとして定義されています。Luaはエンディアンを慎重に処理します。またはのような整数型を表します。01tintunsigned int 私は少し調査しましたがmacro、同じ考えを使用するより簡単な形式があります。 #define double2int(i, d) \ {double t = ((d) + 6755399441055744.0); i = *((int *)(&t));} またはC ++スタイルで: inline int double2int(double d) …

8
Python:ルックアップテーブルのリストと辞書
あるタイプのルックアップテーブルに配置する必要がある値が約1,000万個あるので、リストまたは辞書のどちらがより効率的か疑問に思っていましたか? 私はあなたが両方のためにこのようなことをすることができることを知っています: if something in dict_of_stuff: pass そして if something in list_of_stuff: pass 私の考えは、口述がより速く、より効率的になるだろうということです。 ご協力いただきありがとうございます。 編集1 私がやろうとしていることに関するもう少し詳しい情報。 オイラー問題92。計算された値がすべて計算済みかどうかを確認するために、ルックアップテーブルを作成しています。 編集2 ルックアップの効率。 編集3 値に関連する値はありません...それで、セットはより良いでしょうか?

3
SSLはどのくらいのオーバーヘッドを課しますか?
確かな答えはありませんが、SSLの暗号化オーバーヘッドと暗号化されていないソケット通信の一般的な大まかな見積もりはありますか?アプリケーションレベルの処理は考慮せず、通信処理と通信時間のみについて話しています。 更新 HTTPSとHTTPについての質問がありますが、スタックの下位を見ることに興味があります。 (私は避けるの混乱に句「桁違い」を交換し、私はむしろ正式なCompSciの意味でのより非公式な専門用語としてそれを使用していた。もちろん、私があれば。いた正式にそれを意味し、私は思考のバイナリではなくなっているだろう真のオタクとして10進数!;-) 更新 コメントのリクエストごとに、永続的な接続を介した適切なサイズのメッセージ(1k〜10kの範囲)について話していると想定します。したがって、接続のセットアップとパケットのオーバーヘッドは重要な問題ではありません。

7
C ++で「オブジェクトを返す」方法は?
同じような質問がたくさんあるので、タイトルはなじみがあるように聞こえますが、問題の別の側面を求めています(スタックに物を置くこととヒープに置くことの違いを知っています)。 Javaでは、常に「ローカル」オブジェクトへの参照を返すことができます public Thing calculateThing() { Thing thing = new Thing(); // do calculations and modify thing return thing; } C ++では、似たようなことをするために2つのオプションがあります (1)オブジェクトを「返す」必要があるときはいつでも参照を使用できます void calculateThing(Thing& thing) { // do calculations and modify thing } 次に、このように使用します Thing thing; calculateThing(thing); (2)または、動的に割り当てられたオブジェクトへのポインタを返すことができます Thing* calculateThing() { Thing* thing(new Thing()); // do calculations and modify …

6
SQLで列値の出現を効率的にカウントする方法
学生のテーブルがあります: id | age -------- 0 | 25 1 | 25 2 | 23 すべての学生をクエリし、同じ年齢の学生の数を数える追加の列を作成します。 id | age | count ---------------- 0 | 25 | 2 1 | 25 | 2 2 | 23 | 1 これを行う最も効率的な方法は何ですか?サブクエリが遅くなることを恐れており、もっと良い方法があるかどうか疑問に思っています。ある?
166 sql  performance 

4
postgresql COUNT(DISTINCT…)非常に遅い
私は非常に単純なSQLクエリを持っています: SELECT COUNT(DISTINCT x) FROM table; テーブルには約150万行あります。このクエリの実行速度はかなり遅いです。と比較すると、約7.5秒かかります SELECT COUNT(x) FROM table; 約435msかかります。クエリを変更してパフォーマンスを向上させる方法はありますか?私はグループ化して定期的なカウントを試み、xにインデックスを付けました。どちらも7.5秒の実行時間は同じです。

2
HashSet <Point>がHashSet <string>よりもはるかに遅いのはなぜですか?
重複を許可せずにいくつかのピクセル位置を保存したかったので、最初に頭に浮かぶのは、HashSet&lt;Point&gt;または同様のクラスです。しかし、これはのようなものに比べて非常に遅いようHashSet&lt;string&gt;です。 たとえば、次のコード: HashSet&lt;Point&gt; points = new HashSet&lt;Point&gt;(); using (Bitmap img = new Bitmap(1000, 1000)) { for (int x = 0; x &lt; img.Width; x++) { for (int y = 0; y &lt; img.Height; y++) { points.Add(new Point(x, y)); } } } 約22.5秒かかります。 次のコード(明らかな理由からこれは適切な選択ではありません)は1.6秒しかかかりません。 HashSet&lt;string&gt; points = new HashSet&lt;string&gt;(); using (Bitmap …

1
Bluebirdのutil.toFastProperties関数はどのようにしてオブジェクトのプロパティを「高速」にしますか?
Bluebirdのutil.jsファイルでは、次の機能があります。 function toFastProperties(obj) { /*jshint -W027*/ function f() {} f.prototype = obj; ASSERT("%HasFastProperties", true, obj); return f; eval(obj); } 何らかの理由で、return関数の後にステートメントがありますが、なぜそこにあるのかはわかりません。 同様に、作者がこれに関するJSHint警告を沈黙させたので、それは意図的であるようです: 「return」の後に到達できない「eval」。(W027) この関数は正確に何をしますか?util.toFastProperties本当に「速く」オブジェクトのプロパティを作りますか? BluebirdのGitHubリポジトリを検索して、ソースコードのコメントや問題のリストの説明を探しましたが、何も見つかりませんでした。

6
Scalaのレイジーバリューの(隠された)コストはいくらですか?
Scalaの便利な機能の1つはですlazy val。この機能では、val(最初のアクセス時に)必要になるまでaの評価が遅延されます。 もちろん、aにlazy valは多少のオーバーヘッドが必要です。複数のスレッドが初めて値に同時にアクセスしようとする可能性があるため、Scalaは値がすでに評価されているかどうかを追跡し、評価を同期する必要があります。 正確には何のコストですか?評価されているかどうかを追跡するためににlazy val関連付けられている非表示のブールフラグlazy valはありますか?正確に同期されているものはありますか?それ以上のコストはありますか? さらに、私がこれを行うと仮定します: class Something { lazy val (x, y) = { ... } } これは、2つの別個lazy valのを持っているのと同じですかx、yまたはペアのオーバーヘッドを1回だけ取得します(x, y)か?

17
遅いSecureRandomジェネレータをどのように処理しますか?
Javaで暗号的に強力な乱数が必要な場合は、を使用しますSecureRandom。残念ながら、SecureRandom非常に遅くなる可能性があります。/dev/randomLinux で使用する場合、十分なエントロピーが増加するのを待つことをブロックできます。パフォーマンスの低下をどのように回避しますか? 誰かがこの問題の解決策としてアンコモン数学を使用しましたか? このパフォーマンスの問題がJDK 6で解決されたことを誰かが確認できますか?

3
Python 3でx ** 4.0がx ** 4より速いのはなぜですか?
なぜx**4.0より速いのですx**4か?CPython 3.5.2を使用しています。 $ python -m timeit "for x in range(100):" " x**4.0" 10000 loops, best of 3: 24.2 usec per loop $ python -m timeit "for x in range(100):" " x**4" 10000 loops, best of 3: 30.6 usec per loop 上げた力を変更してその動作を確認しようとしました。たとえば、xを10または16の累乗にすると、30から35にジャンプしますが、フロートとして10.0だけ上げると、動いています。約24.1〜4。 float変換と2のべき乗と関係があるのではないかと思いますが、実際にはわかりません。 どちらの場合も2の累乗の方が速いことに気づきました。これらの計算は、インタプリタ/コンピュータにとってよりネイティブ/簡単だからです。しかし、それでも、フロートではほとんど動きません。2.0 =&gt; 24.1~4 &amp; 128.0 =&gt; 24.1~4 だが …

21
ディズニーのFastPassは有効または有用なキュー理論です
ディズニーワールドでは、彼らはファストパスと呼ばれるシステムを使用して、人気のある乗り物の2番目の短いラインを作成します。アイデアは、通常は1時間を超える待機で標準回線で待機するか、指定した時間ブロック(通常は数時間後)に戻って10だけ待機するFastPassを取得できるというものです。分以下。FastPassを使用すると、一度に1つの乗り物だけを「待機」することができます。 私はこの概念の背後にあるキューの理論を理解しようと努めてきましたが、私が見つけた唯一の説明は、それが人々を行列から外し、追加の収益をもたらすもの(ショッピング、食事など)を行うように設計されているということです。 これがFastPassが実装された理由ですか、それともそれが解決する実際のビジター効率の問題がありますか?同様のロジックを適用したソフトウェアアプリケーションはありますか?同様のロジックを適用する必要があるソフトウェアアプリケーションはありますか? ソフトウェアで同様のものを実装するときに発生する問題の1つは、ユーザーがキューを選択することに基づいていることです。ソフトウェアの待機サイクルを高速化します。この理論を適切に適用するには、エンドユーザーの選択を必要とせずに、ニーズに基づいてユーザーを配置するキューを知るのに十分なほどスマートである必要があります。

7
SQL JOIN対INのパフォーマンス?
JOINまたはINを使用すると正しい結果が得られる場合があります...通常、どちらの方がパフォーマンスがよく、その理由は何ですか。実行しているデータベースサーバーによって異なりますか。(私はMSSQLを使用しています)

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