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

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

29
お気に入りのパフォーマンスチューニングトリック[終了]
現在のところ、この質問は、Q&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 パフォーマンスの調整が必要なクエリまたはストアドプロシージャがある場合、最初に試すことは何ですか。

12
C ++プログラムでscanf()を使用すると、cinを使用するよりも高速ですか?
これが本当かどうかはわかりませんが、問題を提供しているサイトの1つに関するFAQを読んでいたときに、何かに気づきました。 入出力メソッドを確認してください。C ++では、cinおよびcoutの使用は遅すぎます。これらを使用すると、適切な量の入力または出力で問題を解決できないことが保証されます。代わりにprintfとscanfを使用してください。 誰かがこれを明確にしてもらえますか?C ++プログラムで実際にscanf()を使用するのは、cin >>を使用するよりも速いですか?はいの場合、それをC ++プログラムで使用するのは良い習慣ですか?私はC ++を学習しているだけですが、C固有のものだと思いました...
126 c++  c  performance  io 

8
辞書対オブジェクト-どちらがより効率的で、なぜですか?
メモリ使用量とCPU消費量の点でPythonでより効率的なものは何ですか-辞書またはオブジェクト? 背景: 大量のデータをPythonにロードする必要があります。単なるフィールドコンテナーであるオブジェクトを作成しました。4Mのインスタンスを作成して辞書に入れるには、約10分と最大6GBのメモリが必要でした。辞書が準備できたら、それにアクセスするのは一瞬です。 例: パフォーマンスを確認するために、同じことをする2つの単純なプログラムを作成しました。1つはオブジェクトを使用し、もう1つは辞書を使用しています。 オブジェクト(実行時間〜18秒): class Obj(object): def __init__(self, i): self.i = i self.l = [] all = {} for i in range(1000000): all[i] = Obj(i) 辞書(実行時間〜12秒): all = {} for i in range(1000000): o = {} o['i'] = i o['l'] = [] all[i] = o 質問: 私は何か間違ったことをしていますか、それとも辞書はオブジェクトよりも速いのですか?確かに辞書の方が優れている場合、誰かがその理由を説明できますか?

15
仮想関数とパフォーマンス-C ++
私のクラス設計では、抽象クラスと仮想関数を幅広く使用しています。仮想機能がパフォーマンスに影響を与えていると感じました。これは本当ですか?しかし、このパフォーマンスの違いは顕著ではなく、時期尚早の最適化を行っているように見えます。正しい?


30
forループで<または<=を使用する必要があります[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 11ヶ月前に閉鎖。 この質問を改善する ループを7回繰り返す必要がある場合は、次のように使用しますか? for (int i = 0; i &lt; 7; i++) または: for (int i = 0; i &lt;= 6; i++) 2つの考慮事項があります。 パフォーマンス 読みやすさ パフォーマンスのために、JavaまたはC#を想定しています。「以下」または「以下」が使用されているかどうかは重要ですか?別の言語についての洞察がある場合は、どちらかを示してください。 読みやすくするために、0ベースの配列を想定しています。 UPD: 0ベースの配列についての私の言及は、混乱しているかもしれません。配列要素の反復については話していません。単なる一般的なループです。 このマジック番号が何であるかを説明する定数を使用することについて、以下の良い点があります。したがって、「int NUMBER_OF_THINGS = 7」があった場合i &lt;= NUMBER_OF_THINGS - 1、奇妙に見えます。

6
NumPy配列のすべてのセルでの関数の効率的な評価
与えられたnumpyのの配列A、適用する最速/最も効率的な方法何同じ機能を、Fに、すべてのセル? A(i、j)にf(A(i、j))を割り当てると仮定します。 関数fにはバイナリ出力がないため、マスク()演算は役に立ちません。 「すべてのセルを通る」「明白な」二重ループ反復は最適なソリューションですか?

12
select * vs select column
2/3列が必要なだけSELECT *で、それらの列を選択クエリで提供する代わりにクエリを実行する場合、I / Oまたはメモリの増減に関するパフォーマンスの低下はありますか? 必要なく*を選択すると、ネットワークオーバーヘッドが発生する可能性があります。 しかし、選択操作では、データベースエンジンは常にディスクからアトミックタプルをプルするのですか、それとも選択操作で要求された列のみをプルするのですか? 常にタプルをプルする場合、I / Oオーバーヘッドは同じです。 同時に、タプルをプルする場合、要求された列をタプルから取り除くためにメモリが消費される可能性があります。 その場合、select someColumnはselect *よりも多くのメモリオーバーヘッドを持ちます。
124 sql  performance 

3
Scalaのパターンマッチングはバイトコードレベルでどのように実装されますか?
Scalaのパターンマッチングはバイトコードレベルでどのように実装されますか? それは一連のif (x instanceof Foo)構成要素のようなものですか、それとも何か他のものですか?そのパフォーマンスへの影響は何ですか? たとえば、次のコード(Scala By Exampleページ46〜48から)を指定すると、evalメソッドの同等のJavaコードはどのようになりますか? abstract class Expr case class Number(n: Int) extends Expr case class Sum(e1: Expr, e2: Expr) extends Expr def eval(e: Expr): Int = e match { case Number(x) =&gt; x case Sum(l, r) =&gt; eval(l) + eval(r) } PS私はJavaバイトコードを読み取ることができるので、バイトコード表現で十分ですが、おそらく他の読者がJavaコードとしてどのように見えるかを知っている方が良いでしょう。 PPS 『Scalaでのプログラミング』という本は、Scalaの実装方法に関するこの質問および同様の質問に対する回答を提供していますか?その本を注文しましたが、まだ到着していません。

13
C ++パフォーマンスの課題:整数からstd :: stringへの変換
以下にリンクされているstd :: stringコードに整数のパフォーマンスを超える人はいますか? そこに整数に変換する方法について説明し、いくつかの質問に既にあるstd::stringようなC ++で、この1は、しかし、提供するソリューションのどれも効率的ではありません。 これは、いくつかの一般的なメソッドと競合するためのコンパイル可能なコードです。 stringstreamを使用した「C ++の方法」:http : //ideone.com/jh3Sa sprintf。SO-ersは通常、パフォーマンスを重視する場合に推奨します。http://ideone.com/82kwR 一般的な考えに反しboost::lexical_castて、独自の実装(ホワイトペーパー)がありstringstream、数値挿入演算子を使用しません。この他の質問は悲惨であると示唆しているので、私は本当にそのパフォーマンスを比較してみたいと思います。 そして、デスクトップコンピューターで競争力のある私自身の貢献は、整数モジュロに依存するアルゴリズムとは異なり、組み込みシステムでもフルスピードで実行されるアプローチを示しています。 ベンのアルゴリズム:http : //ideone.com/SsEUW そのコードを使用したい場合は、簡略化されたBSDライセンスの下で使用できるようにします(商用利用が許可され、帰属が必要です)。聞いてください。 最後に、この関数ltoaは非標準ですが広く利用できます。 ltoaバージョン、それを提供するコンパイラを持っている人(ideoneは提供していません):http ://ideone.com/T5Wim パフォーマンス測定値を回答としてすぐに投稿します。 アルゴリズムのルール 少なくとも32ビットの符号付きおよび符号なし整数を10進数に変換するためのコードを提供します。 出力をとして生成しstd::stringます。 スレッド化およびシグナルと互換性のないトリック(たとえば、静的バッファー)はありません。 ASCII文字セットを想定できます。 INT_MIN絶対値を表現できない2の補数マシンでコードをテストしてください。 理想的には、出力はstringstream、http://ideone.com/jh3Saを使用した正規のC ++バージョンと文字ごとに同一である必要がありますが、正しい数値でも問題ないため、明確に理解できるものであれば何でもかまいません。 NEW:比較に必要なすべてのコンパイラーオプションとオプティマイザーオプション(完全に無効化されている場合を除く)を使用できますが、コードは少なくともVC ++ 2010およびg ++でもコンパイルして正しい結果を与える必要があります。 期待される議論 より優れたアルゴリズムに加えて、いくつかの異なるプラットフォームとコンパイラでいくつかのベンチマークを取得したいと思います(標準の測定単位としてMB /秒のスループットを使用しましょう)。私のアルゴリズムのコード(sprintfベンチマークはいくつかのショートカットを使用していることを知っています-現在は修正されています)は、少なくともASCIIの仮定の下で、標準によって明確に定義された動作ですが、出力に対して未定義の動作または入力がある場合無効です。指摘してください。 結論: おそらくそれぞれの実装が異なるため、g ++とVC2010では異なるアルゴリズムが実行さstd::stringれます。VC2010は明らかにNRVOでより良い仕事をしており、戻り値を取り除くことはgccでのみ助けられました。 sprintf桁違いに優れたコードが見つかりました。 ostringstream50倍以上遅れます。 チャレンジの勝者は、gccで自分の速度の350%を実行するコードを生成するuser434507です。SOコミュニティの気まぐれのため​​、以降のエントリはクローズされます。 現在の(最終?)スピードチャンピオンは次のとおりです。 gccの場合:user434507、8倍高速sprintf:http ://ideone.com/0uhhX Visual C ++の場合:Timo、15倍高速sprintf:http : //ideone.com/VpKO3


8
LINQステートメントは「foreach」ループよりも高速ですか?
私はメッシュレンダリングマネージャーを作成していて、同じシェーダーを使用するすべてのメッシュをグループ化してから、そのシェーダーパスでこれらをレンダリングすることをお勧めします。 現在foreachループを使用していますが、LINQを使用するとパフォーマンスが向上するかどうか疑問に思いますか?
123 c#  performance  linq  foreach 


6
SQLではwhere句の順序は重要ですか?
PEOPLE3つのカラムを持つというテーブルがあるとしましょうID, LastName, FirstName。これらのカラムにはインデックスが付けられていません。 LastNameよりユニークで、FirstNameそれほどユニークではありません。 2つの検索を行う場合: select * from PEOPLE where FirstName="F" and LastName="L" select * from PEOPLE where LastName="L" and FirstName="F" 私の考えでは、よりユニークな基準(LastName)がwhere句の最初に来るため、2番目の方が速く、レコードがより効率的に排除されると考えています。オプティマイザーは最初のSQLを最適化するほど賢いとは思いません。 私の理解は正しいですか?

7
どのプロセスがすべてのディスクIOを使用しているか
「top」を使用すると、どのCPUがビジーで、どのプロセスがすべてのCPUを使用しているかを確認できます。 「iostat -x」を使用すると、どのドライブがビジーであるかを確認できます。 しかし、どのプロセスがドライブのすべてのスループットを使用しているかをどのように確認できますか?

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