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

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

26
ソートされた配列を処理する方が、ソートされていない配列を処理するよりも速いのはなぜですか?
OverаэтотвопросестьответынаStack Overflowнарусском:Почемуотсортированныймассивобрабатов、еессененеренененеререненееетсябыстре 以下は、非常に奇妙な動作を示すC ++コードの一部です。奇妙な理由で、データを奇妙にソートすると、コードがほぼ6倍速くなります。 #include <algorithm> #include <ctime> #include <iostream> int main() { // Generate data const unsigned arraySize = 32768; int data[arraySize]; for (unsigned c = 0; c < arraySize; ++c) data[c] = std::rand() % 256; // !!! With this, the next loop runs faster. std::sort(data, data + arraySize); …

30
JavaScriptリンクに使用する「href」値は、「#」または「javascript:void(0)」ですか?
以下は、JavaScriptコードを実行することのみを目的としたリンクを作成する2つの方法です。機能、ページの読み込み速度、検証目的などの点でどちらが優れていますか? function myJsFunc() { alert("myJsFunc"); } <a href="#" onclick="myJsFunc();">Run JavaScript Code</a> コードスニペットを実行する結果を非表示スニペットを展開 または function myJsFunc() { alert("myJsFunc"); } <a href="javascript:void(0)" onclick="myJsFunc();">Run JavaScript Code</a> コードスニペットを実行する結果を非表示スニペットを展開

30
なぜAndroidエミュレーターはとても遅いのですか?Androidエミュレータを高速化するにはどうすればよいですか?[閉まっている]
この投稿を改善してみませんか?この質問に対する詳細な回答を提供してください。これには、引用や、回答が正しい理由の説明が含まれます。詳細が不十分な回答は編集または削除される場合があります。 休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 x86 Windows XP Professionalマシンには2.67 GHzのCeleronプロセッサと1.21 GBのRAMを搭載しています。 私の理解では、Androidエミュレータはそのようなマシンでかなり迅速に起動するはずですが、私にとってはそうではありません。私はIDE、SDK、JDKなどの設定に関するすべての指示に従い、エミュレータをすばやく起動することにある程度成功していますが、それは非常にまれです。可能であれば、この問題をどのように修正できますか? 起動してホーム画面を読み込んでも、非常に遅い。私が試してみましたのEclipse IDEでのバージョン3.5(ガリレオ)および3.4(ガニメデ)を。


10
SQLiteの1秒あたりのINSERTパフォーマンスを向上させる
SQLiteの最適化には注意が必要です。Cアプリケーションの一括挿入のパフォーマンスは、1秒あたり85挿入から1秒あたり96,000挿入を超える場合があります。 背景: SQLiteをデスクトップアプリケーションの一部として使用しています。大量の構成データがXMLファイルに格納されており、アプリケーションが初期化されるときに解析され、SQLiteデータベースにロードされてさらに処理されます。SQLiteは高速であり、特別な構成を必要とせず、データベースは単一のファイルとしてディスクに保存されるため、この状況に最適です。 理論的根拠: 最初は私が見ているパフォーマンスにがっかりしました。SQLiteのパフォーマンスは、データベースの構成方法とAPIの使用方法に応じて(一括挿入と選択の両方で)大きく異なる可能性があることがわかりました。すべてのオプションと手法が何であるかを理解することは簡単なことではなかったので、同じコミュニティのWikiエントリを作成してスタックオーバーフローリーダーと結果を共有し、同じ調査の問題を他の人に知らせるのは賢明だと思いました。 実験:一般的なパフォーマンスのヒント(つまり、「トランザクションを使用する!」)について単に話すのではなく、Cコードを記述して実際にさまざまなオプションの影響を測定するのが最善だと思いました。いくつかの簡単なデータから始めましょう: トロント市の完全な輸送スケジュールの28 MBのタブ区切りテキストファイル(約865,000レコード) 私のテストマシンは、Windows XPを実行する3.60 GHz P4です。 コードは、Visual C ++ 2005で「完全最適化」(/ Ox)付きの「リリース」としてコンパイルされ、高速コード(/ Ot)が優先されます。 私はテストアプリケーションに直接コンパイルされたSQLite "Amalgamation"を使用しています。私がたまたま持っているSQLiteのバージョンは少し古い(3.6.7)ですが、これらの結果は最新のリリースに匹敵すると思われます(そうでない場合はコメントを残してください)。 コードを書いてみましょう! コード:テキストファイルを1行ずつ読み取り、文字列を値に分割し、データをSQLiteデータベースに挿入する単純なCプログラム。この「ベースライン」バージョンのコードでは、データベースが作成されますが、実際にはデータを挿入しません。 /************************************************************* Baseline code to experiment with SQLite performance. Input data is a 28 MB TAB-delimited text file of the complete Toronto Transit System schedule/route info from http://www.toronto.ca/open/datasets/ttc-routes/ **************************************************************/ …

3
「B」の印刷が「#」の印刷よりも劇的に遅いのはなぜですか?
1000xの2つの行列を生成しました1000。 最初のマトリックス:Oと#。 2番目のマトリックス:OとB。 次のコードを使用すると、最初のマトリックスの完了に8.52秒かかりました。 Random r = new Random(); for (int i = 0; i < 1000; i++) { for (int j = 0; j < 1000; j++) { if(r.nextInt(4) == 0) { System.out.print("O"); } else { System.out.print("#"); } } System.out.println(""); } このコードを使用すると、2番目のマトリックスが完了するまでに259.152秒かかりました。 Random r = new Random(); for (int …

8
データベースのインデックス付けはどのように機能しますか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 データセットのサイズが大きくなると、インデックス付けが非常に重要になるので、データベースに依存しないレベルでインデックス付けがどのように機能するかを誰かが説明できますか? フィールドにインデックスを付けるクエリの詳細については、データベースの列にインデックスを付ける方法をご覧ください。

10
要素ごとの加算が、結合されたループよりも個別のループではるかに速いのはなぜですか?
仮定a1、b1、c1、およびd1ヒープメモリと私の数値コードのポイントは、以下のコアループを有しています。 const int n = 100000; for (int j = 0; j < n; j++) { a1[j] += b1[j]; c1[j] += d1[j]; } このループは、別の外部forループを介して10,000回実行されます。スピードアップするために、コードを次のように変更しました。 for (int j = 0; j < n; j++) { a1[j] += b1[j]; } for (int j = 0; j < n; j++) { c1[j] += …

10
Python 3で「1000000000000000 in range(1000000000000001)」が非常に高速なのはなぜですか?
私が理解しているのは、range()実際にはPython 3のオブジェクト型である関数が、ジェネレーターのようにその場でコンテンツを生成することです。 これが事実である場合、1兆が範囲内にあるかどうかを判断するためには、1兆の値を生成する必要があるため、次の行に膨大な時間がかかると予想していました。 1000000000000000 in range(1000000000000001) さらに、ゼロをいくつ追加しても、計算には多少同じ時間がかかります(基本的には瞬時)。 私もこのようなことを試しましたが、計算はまだほとんど瞬時です: 1000000000000000000000 in range(0,1000000000000000000001,10) # count by tens 私が自分の範囲関数を実装しようとすると、結果はそれほど良くありません!! def my_crappy_range(N): i = 0 while i < N: yield i i += 1 return 何でrange()それがとても速くなりボンネットの下にやったオブジェクトは? マルタインピータースの答えは、その完全性のために選ばれた、だけでなく、見たabarnertの最初の答えのためにそれが何を意味するかの良い議論のためのrange本格的なようにシーケンスのPython 3での、およびのための潜在的な矛盾に関するいくつかの情報/警告__contains__のPython実装間の機能の最適化。abarnertの他の回答は、さらに詳細に説明されており、Python 3での最適化の背後にある歴史(およびxrangePython 2 での最適化の欠如)に関心のある人にリンクを提供しています。pokeとwim による回答は、関連するCソースコードと、興味がある人のための説明を提供します。

14
<は<=より速いですか?
であるif( a &lt; 901 )よりも速くif( a &lt;= 900 )。 この単純な例とまったく同じではありませんが、ループの複雑なコードではパフォーマンスにわずかな変更があります。これが真実である場合に備えて、これは生成されたマシンコードで何かをしなければならないと思います。

21
JavaScriptでオブジェクトのキー/プロパティの数を効率的にカウントする方法は?
オブジェクトのキー/プロパティの数を数える最も速い方法は何ですか?オブジェクトを繰り返すことなくこれを行うことは可能ですか?つまり、せずに var count = 0; for (k in myobj) if (myobj.hasOwnProperty(k)) count++; (Firefoxは魔法の__count__プロパティを提供しましたが、これはバージョン4のどこかで削除されました。)


10
32ビットのループカウンターを64ビットで置き換えると、Intel CPUで_mm_popcnt_u64を使用すると、パフォーマンスが大幅にずれる
popcount大規模なデータ配列への最速の方法を探していました。私が遭遇した非常に奇妙な効果を:からループ変数を変更するunsignedにuint64_t私のPC上で50%で作られたパフォーマンスの低下を。 ベンチマーク #include &lt;iostream&gt; #include &lt;chrono&gt; #include &lt;x86intrin.h&gt; int main(int argc, char* argv[]) { using namespace std; if (argc != 2) { cerr &lt;&lt; "usage: array_size in MB" &lt;&lt; endl; return -1; } uint64_t size = atol(argv[1])&lt;&lt;20; uint64_t* buffer = new uint64_t[size/8]; char* charbuffer = reinterpret_cast&lt;char*&gt;(buffer); for (unsigned i=0; i&lt;size; …

16
文字列のフォーマット:%と.format
Python 2.6では、str.format()既存の%演算子とは構文が少し異なるメソッドが導入されました。どちらがより適切で、どのような状況に適していますか? 以下はそれぞれの方法を使用し、同じ結果をもたらすので、違いは何ですか? #!/usr/bin/python sub1 = "python string!" sub2 = "an arg" a = "i am a %s" % sub1 b = "i am a {0}".format(sub1) c = "with %(kwarg)s!" % {'kwarg':sub2} d = "with {kwarg}!".format(kwarg=sub2) print a # "i am a python string!" print b # "i am a …

29
Pythonスクリプトのプロファイルをどのように作成できますか?
多くの場合、プロジェクトオイラーやその他のコーディングコンテストの実行時間は最大であるか、特定のソリューションの実行速度が自慢です。Pythonでは、時々アプローチがややこしい-つまり、タイミングコードをに追加する__main__。 Pythonプログラムの実行にかかる時間をプロファイルする良い方法は何ですか?

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