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

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

11
例外がスローされない場合、try / catchブロックはパフォーマンスを低下させますか?
マイクロソフトの従業員とのコードレビュー中に、try{}ブロック内のコードの大きなセクションに遭遇しました。彼女とIT担当者は、これがコードのパフォーマンスに影響を与える可能性があることを示唆しました。実際、彼らはほとんどのコードはtry / catchブロックの外にあるべきであり、重要なセクションだけがチェックされるべきであると提案しました。マイクロソフト社の従業員は、次のホワイトペーパーを追加して、不正なtry / catchブロックに対して警告を発すると述べています。 調べてみたところ、最適化に影響する可能性があることがわかりましたが、スコープ間で変数が共有されている場合にのみ適用されるようです。 私はコードの保守性について質問したり、適切な例外を処理したりすることもしていません(問題のコードは間違いなくリファクタリングが必要です)。フロー制御の例外の使用についても言及していません。これはほとんどの場合明らかに間違っています。これらは重要な問題です(いくつかはより重要です)が、ここでは焦点を当てていません。 例外がスローされない場合、try / catchブロックはパフォーマンスにどのように影響しますか?

8
LINQ:ありませんvsすべてありません
多くの場合、提供された値がリスト内の値と一致するかどうかを確認したい(たとえば、検証するとき): if (!acceptedValues.Any(v => v == someValue)) { // exception logic } 最近、ReSharperがこれらのクエリを簡略化して次のことを要求することに気づきました。 if (acceptedValues.All(v => v != someValue)) { // exception logic } 明らかに、これは論理的に同一で、おそらく少し読みやすくなります(多くの数学を実行した場合)、私の質問は次のとおりです。これはパフォーマンスに影響を与えますか? それはあるべきように感じます(すなわち.Any()、それは短絡.All()するように聞こえますが、そうではないように聞こえます)が、私はこれを実証するものは何もありません。クエリが同じように解決されるかどうか、またはReSharperが私を迷わせているかどうかについて、より深い知識を持っている人はいますか?
272 c#  .net  performance  linq  resharper 

11
Ruby、PythonがJavascript V8の速度を得るために何を妨げているのですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 5年前休業。 ロックされています。この質問とトピックへの回答はロックされています。質問はトピックから外れていますが、歴史的に重要です。現在、新しい回答や相互作用を受け入れていません。 V8エンジンの最適化(インラインキャッシュなど)の実装をブロックしているRuby / Python機能はありますか? PythonはGoogleのメンバーによって共同開発されているため、ソフトウェア特許によってブロックされるべきではありません。 または、これはGoogleがV8プロジェクトに投入したリソースの問題です。

9
SQL Serverでの内部結合と左結合のパフォーマンス
9つのテーブルでINNER JOINを使用するSQLコマンドを作成しましたが、このコマンドには非常に長い時間がかかります(5分以上)。したがって、私の知っていることにもかかわらず、LEFT JOINのパフォーマンスが向上するため、私の人々はINNER JOINをLEFT JOINに変更するように提案しました。変更後、クエリの速度が大幅に向上しました。 LEFT JOINがINNER JOINより速い理由を教えてください。 :以下のような私のSQLコマンドの外観 SELECT * FROM A INNER JOIN B ON ... INNER JOIN C ON ... INNER JOIN Dなど 更新: これは私のスキーマの概要です。 FROM sidisaleshdrmly a -- NOT HAVE PK AND FK INNER JOIN sidisalesdetmly b -- THIS TABLE ALSO HAVE NO PK AND FK …

19
内部結合と場所
(オラクルで)パフォーマンスに違いはありますか Select * from Table1 T1 Inner Join Table2 T2 On T1.ID = T2.ID そして Select * from Table1 T1, Table2 T2 Where T1.ID = T2.ID ?
257 sql  performance  oracle 

12
SQL Server:クエリは高速ですが、手順が遅い
クエリは高速に実行されます。 DECLARE @SessionGUID uniqueidentifier SET @SessionGUID = 'BCBA333C-B6A1-4155-9833-C495F22EA908' SELECT * FROM Report_Opener WHERE SessionGUID = @SessionGUID ORDER BY CurrencyTypeOrder, Rank サブツリーコスト:0.502 しかし、同じSQLをストアドプロシージャに配置すると、実行速度が遅くなり、実行プランがまったく異なります。 CREATE PROCEDURE dbo.ViewOpener @SessionGUID uniqueidentifier AS SELECT * FROM Report_Opener WHERE SessionGUID = @SessionGUID ORDER BY CurrencyTypeOrder, Rank EXECUTE ViewOpener @SessionGUID サブツリーのコスト:19.2 私は走った sp_recompile ViewOpener そして、それはまだ同じように(悪い)実行されます、そして私はストアドプロシージャもに変更しました CREATE PROCEDURE …

9
JSFがゲッターを複数回呼び出す理由
次のようにoutputTextコンポーネントを指定するとします。 <h:outputText value="#{ManagedBean.someProperty}"/> のゲッターsomePropertyが呼び出されたときにログメッセージを出力してページをロードすると、ゲッターがリクエストごとに複数回呼び出されていることに気付くのは簡単です(私の場合は2回または3回発生したことです)。 DEBUG 2010-01-18 23:31:40,104 (ManagedBean.java:13) - Getting some property DEBUG 2010-01-18 23:31:40,104 (ManagedBean.java:13) - Getting some property の値のsomeProperty計算にコストがかかる場合、これが問題になる可能性があります。 私は少しグーグルで調べて、これは既知の問題であると考えました。回避策の1つは、チェックを含め、それがすでに計算されているかどうかを確認することでした。 private String someProperty; public String getSomeProperty() { if (this.someProperty == null) { this.someProperty = this.calculatePropertyValue(); } return this.someProperty; } これの主な問題は、不要なプライベート変数は言うまでもなく、大量のボイラープレートコードを取得することです。 このアプローチの代替手段は何ですか?それほど多くの不要なコードなしでこれを達成する方法はありますか?JSFがこのように動作しないようにする方法はありますか? ご協力ありがとうございます。
256 performance  jsf  el  getter 

6
例外のスローのどの部分が高価ですか?
Javaでは、実際にはエラーがない場合にロジックの一部としてthrow / catchを使用することは、(一部では)一般に悪い考えです。例外のスローとキャッチはコストがかかり、ループで何度も実行することは通常、他の方法よりもはるかに遅いためです。例外のスローを含まない制御構造。 私の質問は、スロー/キャッチ自体で発生するコストですか、それとも例外オブジェクトを作成するときに発生しますか(実行スタックを含む多くのランタイム情報を取得するため)? つまり、もし Exception e = new Exception(); しかしそれを投げないでください、それは投げのコストのほとんどですか、それとも投げ+キャッチは高価なものを処理していますか? コードをtry / catchブロックに配置すると、そのコードを実行するコストが増えるかどうかは尋ねていません。例外のキャッチが高価な部分であるか、または例外の作成(コンストラクターの呼び出し)が高価な部分であるかどうかを尋ねています。 。 これを尋ねる別の方法は、例外のインスタンスを1つ作成し、それを何度もスローしてキャッチした場合、スローするたびに新しい例外を作成するよりもはるかに速いでしょうか?

14
Linuxでのスレッドとプロセス
Linuxはプロセスを処理するのに非常に効率的であり、スレッドに関連する多くの問題(ロックなど)があるため、Linuxではほとんどの場合スレッドの代わりにプロセスを使用する方が良いと言う人がいます。ただし、状況によってはスレッドがかなり大きなパフォーマンスの向上をもたらす可能性があるため、私は不審です。 だから私の質問は、スレッドとプロセスの両方がかなりうまく処理できる状況に直面したときに、プロセスとスレッドのどちらを使用するべきかということです。たとえば、Webサーバーを作成している場合、プロセスまたはスレッド(またはその組み合わせ)を使用する必要がありますか?


4
SQLステートメントを検索可能にするのは何ですか?
定義により(少なくとも私が見た限りでは)引数を指定できるということは、クエリが使用する実行プランをクエリエンジンが最適化できるようにすることを意味します。私は答えを調べてみましたが、主題について多くはないようです。だから問題は、SQLクエリを検索可能にするものとは何ですか?どんなドキュメントでも大歓迎です。 参考:SARGable

10
より効率的なものは何ですか:辞書TryGetValueまたはContainsKey + Item?
MSDNのDictionary.TryGetValueメソッドに関するエントリから: このメソッドは、ContainsKeyメソッドとItemプロパティの機能を組み合わせたものです。 キーが見つからない場合、valueパラメータは値タイプTValueの適切なデフォルト値を取得します。たとえば、整数型の場合は0(ゼロ)、ブール型の場合はfalse、参照型の場合はnullです。 コードが辞書にないキーに頻繁にアクセスする場合は、TryGetValueメソッドを使用します。このメソッドを使用すると、ItemプロパティによってスローされたKeyNotFoundExceptionをキャッチするよりも効率的です。 このメソッドはO(1)操作にアプローチします。 説明から、ContainsKeyを呼び出してルックアップを行うよりも効率的か便利かは明らかではありません。の実装は、TryGetValueContainsKeyを呼び出してからItemを呼び出すだけですか、それとも1回のルックアップを実行するだけで実装よりも効率的ですか? 言い換えれば、何がより効率的であるか(すなわち、どれがより少ないルックアップを実行するか): Dictionary<int,int> dict; //...// int ival; if(dict.ContainsKey(ikey)) { ival = dict[ikey]; } else { ival = default(int); } または Dictionary<int,int> dict; //...// int ival; dict.TryGetValue(ikey, out ival); 注:私はベンチマークを探していません!

18
Androidエミュレーターの実行速度を上げる
Androidエミュレーターは少し遅いです。Motorola DroidやNexus Oneなどの一部のデバイスでは、アプリは実際のデバイスでエミュレーターよりも高速に実行されます。これは、ゲームや視覚効果をテストする際の問題です。 エミュレータを可能な限り高速に実行するにはどうすればよいですか?私はそのパラメータをいじっていますが、顕著な改善を示す構成をまだ見つけていません。

13
2つの整数の範囲の重複をテストする最も効率的な方法は何ですか?
2つの包括的な整数範囲[x1:x2]と[y1:y2]が与えられた場合、x1≤x2とy1≤y2の場合、2つの範囲が重複しているかどうかをテストする最も効率的な方法は何ですか? 簡単な実装は次のとおりです。 bool testOverlap(int x1, int x2, int y1, int y2) { return (x1 >= y1 && x1 <= y2) || (x2 >= y1 && x2 <= y2) || (y1 >= x1 && y1 <= x2) || (y2 >= x1 && y2 <= x2); } しかし、これを計算するより効率的な方法があると思います。 操作が最も少ないという点で、どの方法が最も効率的でしょう。

23
JavaScriptで配列をループする最も速い方法は何ですか?
私はあなたがこのようにループのために書くべきであることを本から学びました: for(var i=0, len=arr.length; i < len; i++){ // blah blah } そのため、arr.length毎回計算されません。 他の人は、コンパイラがこれに対していくらかの最適化を行うと言うので、あなたはただ書くことができます: for(var i=0; i < arr.length; i++){ // blah blah } 私は実際にどちらが最善の方法であるか知りたいのですか?

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