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

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

6
(大きい?)数の値に対するMySQLの「IN」演算子のパフォーマンス
私は最近RedisとMongoDBを試していますが、MongoDBまたはRedisのいずれかにIDの配列を格納する場合が多いようです。MySQL IN演算子について質問しているので、この質問についてはRedisを使用します。 IN演算子内に多数(300〜3000)のIDをリストすることは、どれほどパフォーマンスが高いのか疑問に思いました。これは次のようになります。 SELECT id, name, price FROM products WHERE id IN (1, 2, 3, 4, ...... 3000) 通常は一緒に結合して特定のカテゴリから製品を取得する、製品とカテゴリのテーブルのような単純なものを想像してみてください。上記の例では、Redis()の特定のカテゴリの下で、ID 4のカテゴリからすべての製品IDを返し、演算子内の上記のクエリに配置していることがわかります。category:4:product_idsSELECTIN これはどのくらいのパフォーマンスですか? これは「状況によって異なります」ですか?または、具体的な「これは(受け入れられない)」または「速い」または「遅い」LIMIT 25がありますか、それとも追加する必要がありますか、それとも役に立ちませんか? SELECT id, name, price FROM products WHERE id IN (1, 2, 3, 4, ...... 3000) LIMIT 25 または、Redisによって返される製品IDの配列をトリミングして25に制限し、クエリLIMIT内から3000ではなく25 IDのみをクエリに追加して25に追加する必要がありますか? SELECT id, name, price FROM products WHERE id …

5
DjangoQuerySetでのカウントとlen
Djangoでは、QuerySet繰り返して結果を出力することがあるので、オブジェクトを数えるための最良のオプションは何ですか?len(qs)またはqs.count()? (また、同じ反復でオブジェクトをカウントすることはオプションではありません。)

3
アトミック操作コスト
アトミック操作(コンペアアンドスワップまたはアトミック加算/デクリメントのいずれか)のコストはいくらですか?どのくらいのサイクルを消費しますか?SMPまたはNUMAで他のプロセッサを一時停止しますか、それともメモリアクセスをブロックしますか?アウトオブオーダーCPUのリオーダーバッファをフラッシュしますか? キャッシュにはどのような影響がありますか? x86、x86_64、PowerPC、SPARC、Itaniumなどの最新の人気のあるCPUに興味があります。

10
C ++で長い方程式を実装する場合、高レベルのアプローチでパフォーマンスを向上させるにはどうすればよいですか
私はいくつかの工学シミュレーションを開発しています。これには、ゴムのような材料の応力を計算するために、この方程式のようないくつかの長い方程式を実装することが含まれます。 T = ( mu * ( pow(l1 * pow(l1 * l2 * l3, -0.1e1 / 0.3e1), a) * a * ( pow(l1 * l2 * l3, -0.1e1 / 0.3e1) - l1 * l2 * l3 * pow(l1 * l2 * l3, -0.4e1 / 0.3e1) / 0.3e1 ) * pow(l1 …

12
IntelliJ-Ideaの高速化
私はScala開発にintelliJを使用していて、先週8 GBの新しいRAM を取得したので、使用する時間だと思った。私は、タスクマネージャを確認し、使用してのIntelliJを見つけ〜250メガバイトを。日食から、JVMオプションを調整することで速度が大幅に向上することを知っていたので、Googleで... 見つかったOS Xのために、この1 私は微調整を開始して、私は、すぐにJVMオプションを見つけることができませんでしたXmxのを。1 GBで、もう起動しないことに気付きました。私はintelliJのJavaバージョンをチェックしましたが、それが古く、32ビットであることがわかりました。 したがって、現在のJDKと64ビットを使用するには、リンクを次のように変更する必要があります。 IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe に IntelliJ IDEA Community Edition 10.0.2\bin\idea.BAT 「開始」を調整します バットはJDK_HOME現在64ビットを探して使用しています。 現在のVMオプションは次の場所にあります ...\IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe.vmoptions は -Xms512m -Xmx1024m -XX:MaxPermSize=512m -ea -server -XX:+DoEscapeAnalysis -XX:+UseCompressedOops -XX:+UnlockExperimentalVMOptions -XX:+UseParallelGC の代わりに-XX:+UseParallelGC、を使用できます-XX:+UseConcMarkSweepGC。 デスクトップアプリの受け入れられた選択ですが、最近スループットコレクターに変更しました。高速なマシンと十分に小さいヒープを使用すると、一時停止が速くなり、スループットが向上し、断片化の問題が発生しません(ijuma。#scala)。 変更: -XX:+UseConcMarkSweepGC //removed // removed, because not needed with the lastest …

6
Pythonで辞書をコピーする高速な方法
私は辞書をよく使うPythonプログラムを持っています。辞書のコピーを何千回も作成する必要があります。キーと関連コンテンツの両方のコピーが必要です。コピーは編集されるため、オリジナルにリンクすることはできません(たとえば、コピーの変更がオリジナルに影響してはなりません)。 キーは文字列、値は整数(0/1)です。 私は現在、簡単な方法を使用しています: newDict = oldDict.copy() コードをプロファイリングすると、コピー操作にほとんどの時間がかかることがわかります。 このdict.copy()方法に代わる高速な方法はありますか?何が最速でしょうか?

7
サードパーティのライブラリを使用せずにC#でログインするにはどうすればよいですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 昨年休業。 この質問を改善する アプリケーションにロギングを実装したいのですが、log4netのような外部フレームワークは使用しません。 それで、DOSのファイルへのエコーのようなことをしたいと思います。それを行う最も効果的な方法は何ですか? 外部フレームワークを使用せずにログに記録された未処理の例外をログに記録する方法はありますか?

1
HashSet <T> .removeAllメソッドは驚くほど遅い
Jon Skeetは最近彼のブログで興味深いプログラミングトピックを取り上げました:「私の抽象化には、穴があります。 私はセットを持っています– HashSet実際、。いくつかのアイテムを削除したいのですが、アイテムの多くが存在しない可能性があります。実際、私たちのテストケースでは、「removals」コレクションの項目はいずれも元のセットには含まれません。これは、実際にコーディングが非常に簡単に聞こえます。結局のところ、私たちはSet&lt;T&gt;.removeAll私たちを助ける必要がありますよね? 「ソース」セットのサイズと「削除」コレクションのサイズをコマンドラインで指定し、両方をビルドします。ソースセットには負でない整数のみが含まれています。削除セットには負の整数のみが含まれています。を使用してすべての要素を削除するのにかかる時間を測定しますSystem.currentTimeMillis()。これは、世界で最も正確なストップウォッチではありませんが、この例では十分すぎるほどです。これがコードです: import java.util.*; public class Test { public static void main(String[] args) { int sourceSize = Integer.parseInt(args[0]); int removalsSize = Integer.parseInt(args[1]); Set&lt;Integer&gt; source = new HashSet&lt;Integer&gt;(); Collection&lt;Integer&gt; removals = new ArrayList&lt;Integer&gt;(); for (int i = 0; i &lt; sourceSize; i++) { source.add(i); } for (int i …

6
パンダのiterrowsにはパフォーマンスの問題がありますか?
パンダのiterrowを使用すると、パフォーマンスが非常に低下することに気づきました。 これは他の人が経験するものですか?それはiterrowsに固有ですか?この関数は特定のサイズのデータ​​(200万から300万行を処理しています)に対しては回避する必要がありますか? GitHub に関するこの議論から、データフレームでdtypeが混在していることが原因であると信じるようになりましたが、以下の簡単な例では、1つのdtype(float64)を使用している場合でも存在することを示しています。これは私のマシンで36秒かかります: import pandas as pd import numpy as np import time s1 = np.random.randn(2000000) s2 = np.random.randn(2000000) dfa = pd.DataFrame({'s1': s1, 's2': s2}) start = time.time() i=0 for rowindex, row in dfa.iterrows(): i+=1 end = time.time() print end - start applyのようなベクトル化された操作がなぜこれほど速くなるのですか?そこにも行ごとの反復がいくつかあるはずだと思います。 私の場合にiterrowを使用しない方法を理解できません(これは今後の質問のために保存します)。したがって、この繰り返しを常に回避できる場合は、ご連絡いただければ幸いです。個別のデータフレームのデータに基づいて計算を行っています。ありがとうございました! ---編集:実行したいものの簡略版を以下に追加しました--- import pandas as pd …

4
const-correctnessはパフォーマンスを向上させることができますか?
CまたはC ++コードでconst-correctnessを適用することは、保守性に関して良い習慣であるだけでなく、コンパイラーが最適化を実行できるようになる可能性があることを何度も読みました。しかし、私も完全に反対のことを読みました—それはパフォーマンスにまったく影響を与えないということです。 したがって、constの正当性がコンパイラーのプログラムのパフォーマンス向上に役立つ可能性がある例はありますか?

5
Android SQLiteデータベース:挿入が遅い
かなり大きなXMLファイル(約100キロバイトから数百キロバイトまでの範囲)を解析する必要がありますXml#parse(String, ContentHandler)。これは、を使用して実行しています。私は現在、これを152KBファイルでテストしています。 解析中、次のような呼び出しを使用してSQLiteデータベースにデータを挿入しますgetWritableDatabase().insert(TABLE_NAME, "_id", values)。これらすべてを合わせて、152KBのテストファイル(約200行を挿入する)の場合、約80秒かかります。 すべての挿入ステートメントをコメントアウトすると(ただし、作成ContentValuesなど、他のものはすべて残します)、同じファイルにかかる時間はわずか23秒です。 データベース操作でこのような大きなオーバーヘッドが発生するのは正常ですか?それについて何かできますか?

4
フロートvsダブルパフォーマンス
私はいくつかのタイミングテストを行い、このようないくつかの記事(最後のコメント)も読みました。リリースビルドでは、float値とdouble値の処理時間は同じです。 これはどのようにして可能ですか?floatがdouble値と比較して精度が低く、小さい場合、CLRはどのようにして同じ処理時間でdoubleを取得できますか?
91 c#  .net  clr  performance 

4
コンパイルされたC#ラムダ式のパフォーマンス
コレクションに対する次の簡単な操作を検討してください。 static List&lt;int&gt; x = new List&lt;int&gt;() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var result = x.Where(i =&gt; i % 2 == 0).Where(i =&gt; i &gt; 5); 次に、式を使用します。次のコードはほぼ同等です。 static void UsingLambda() { Func&lt;IEnumerable&lt;int&gt;, IEnumerable&lt;int&gt;&gt; lambda = l =&gt; l.Where(i =&gt; i % 2 == …

5
タグのオープン/クローズとパフォーマンス?
これはばかげた質問かもしれませんが、PHPを比較的初めて使う人として、HTMLテンプレートコードで頻繁にPHPタグを開いたり閉じたりすることにパフォーマンス関連の問題があるかどうかと思います。 PHPタグを操作する方法 私の質問は、終了タグの重要性/正確さ、またはどのタイプのコードが他のコードより読みやすいかについてではなく、ドキュメントがどのように解析/実行され、パフォーマンスにどのような影響があるかについてです。 説明のために、次の2つの極端な例を考えます。 PHPタグとHTMLタグの混在: &lt;?php echo '&lt;tr&gt; &lt;td&gt;'.$variable1.'&lt;/td&gt; &lt;td&gt;'.$variable2.'&lt;/td&gt; &lt;td&gt;'.$variable3.'&lt;/td&gt; &lt;td&gt;'.$variable4.'&lt;/td&gt; &lt;td&gt;'.$variable5.'&lt;/td&gt; &lt;/tr&gt;' ?&gt; // PHP tag opened once PHPタグとHTMLタグの分離: &lt;tr&gt; &lt;td&gt;&lt;?php echo $variable1 ?&gt;&lt;/td&gt; &lt;td&gt;&lt;?php echo $variable2 ?&gt;&lt;/td&gt; &lt;td&gt;&lt;?php echo $variable3 ?&gt;&lt;/td&gt; &lt;td&gt;&lt;?php echo $variable4 ?&gt;&lt;/td&gt; &lt;td&gt;&lt;?php echo $variable5 ?&gt;&lt;/td&gt; &lt;/tr&gt; // PHP tag opened five times たとえそれが違いをもたらさないと聞くだけであっても、これについてのいくつかの見解を聞くことに興味があります。 …

6
Javaでは、intの代わりにbyteまたはshortを使用し、doubleの代わりにfloatを使用する方が効率的ですか?
私は、intとdoubleを常に使用していることに気付きました。それでJavaでは、byteまたはshort代わりにint、float代わりに使用する方が効率的doubleですか? したがって、intとdoubleがたくさんあるプログラムがあるとします。数値が収まるとわかっている場合、intをバイトまたはショートに変更してみる価値はありますか? Javaに符号なしの型がないことはわかっていますが、数値が正の値のみになるとわかっている場合に何か他にできることはありますか? 効率的とは、主に処理を意味します。ガベージコレクターは、すべての変数のサイズが半分になるとはるかに速くなり、その計算もおそらく多少速くなると思います。(私はアンドロイドで作業しているので、ラムについても少し心配する必要があると思います) (ガベージコレクターはオブジェクトのみを処理し、プリミティブは処理しないが、破棄されたオブジェクト内のすべてのプリミティブを削除すると思いますか?) 私が持っている小さなandroidアプリで試してみましたが、違いにまったく気づきませんでした。(私は「科学的に」何も測定しませんでしたが。) それがより速く、より効率的であると仮定するのは間違っていますか?私は自分の時間を浪費していることを見つけるために大規模なプログラムですべてを変更して変更することを嫌います。 新しいプロジェクトを始めるとき、最初からやる価値はありますか?(私は少しでも役立つと思いますが、それでもそうなら、なぜ誰かがそうしているように思えないのですか?)

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