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

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


25
Java HashMapパフォーマンスの最適化/代替
大きなHashMapを作成したいのですが、put()パフォーマンスが十分ではありません。何か案は? 他のデータ構造の提案も歓迎しますが、Javaマップの検索機能が必要です。 map.get(key) 私の場合、2,600万エントリのマップを作成します。標準のJava HashMapを使用すると、200万から300万の挿入後、書き込み速度が耐えられないほど遅くなります。 また、キーに異なるハッシュコードの分布を使用することが役立つかどうか誰かが知っていますか? 私のハッシュコード方法: byte[] a = new byte[2]; byte[] b = new byte[3]; ... public int hashCode() { int hash = 503; hash = hash * 5381 + (a[0] + a[1]); hash = hash * 5381 + (b[0] + b[1] + b[2]); return hash; } 同等のオブジェクトが同じハッシュコードを持つようにするために、additionの連想プロパティを使用しています。配列は0から51の範囲の値を持つバイトです。値はどちらの配列でも1回だけ使用されます。a配列に同じ値(どちらの順序でも)が含まれ、b配列にも同じ場合、オブジェクトは等しくなります。したがって、a …

9
Javaで2つのセットを比較する最も速い方法は何ですか?
リストの要素を比較するコードを最適化しようとしています。 例えば。 public void compare(Set<Record> firstSet, Set<Record> secondSet){ for(Record firstRecord : firstSet){ for(Record secondRecord : secondSet){ // comparing logic } } } セット内のレコード数が多くなることを考慮してください。 ありがとう シェカール
102 java  performance  set 

8
C#の「is」演算子のパフォーマンス
高速なパフォーマンスを必要とするプログラムがあります。その内部ループの1つで、オブジェクトのタイプをテストして、特定のインターフェイスから継承するかどうかを確認する必要があります。 これを行う1つの方法は、CLRの組み込み型チェック機能を使用することです。最もエレガントな方法はおそらく「is」キーワードです。 if (obj is ISpecialType) 別のアプローチは、事前定義された列挙値を返す独自の仮想GetType()関数を基本クラスに与えることです(私の場合、実際には私はブール値のみが必要です)。その方法は高速ですが、エレガントではありません。 「is」キーワード専用のIL命令があると聞いたことがありますが、ネイティブアセンブリに変換したときに高速に実行されるわけではありません。「is」のパフォーマンスと他のメソッドのパフォーマンスについて洞察を共有できる人はいますか? 更新: すべての情報に基づいた回答をありがとう!答えの中にはいくつかの役立つポイントが広がっているようです。Andrewが「自動的にキャストを実行する」というポイントは不可欠ですが、Binary WorrierとIanが収集したパフォーマンスデータも非常に役立ちます。回答の1つがこの情報のすべてを含むように編集されているとすばらしいでしょう。
102 c#  performance  clr  gettype 

3
jQueryで子孫要素を選択する最速の方法は何ですか?
私の知る限り、jQueryで子要素を選択する方法はいくつかあります。 //Store parent in a variable var $parent = $("#parent"); 方法1 (スコープを使用) $(".child", $parent).show(); メソッド2 (find()メソッド) $parent.find(".child").show(); 方法3 (直接の子供のみ) $parent.children(".child").show(); 方法4 (CSSセレクター経由) -@spinonにより提案 $("#parent > .child").show(); 方法5 (方法2と同じ) -@Kaiによる $("#parent .child").show(); これを自分で調査できるプロファイリングについては詳しくないので、あなたの意見を聞きたいと思います。 PSこれはこの質問の重複の可能性があることを理解していますが、すべての方法を網羅しているわけではありません。

14
ループでStringBuilderを再利用する方が良いですか?
StringBuilderの使用に関するパフォーマンス関連の質問があります。非常に長いループで、私はa StringBuilderを操作して次のような別のメソッドに渡します。 for (loop condition) { StringBuilder sb = new StringBuilder(); sb.append("some string"); . . . sb.append(anotherString); . . . passToMethod(sb.toString()); } StringBuilderすべてのループサイクルでインスタンス化することは良い解決策ですか?そして、次のように、代わりに削除を呼び出す方が良いですか? StringBuilder sb = new StringBuilder(); for (loop condition) { sb.delete(0, sb.length); sb.append("some string"); . . . sb.append(anotherString); . . . passToMethod(sb.toString()); }

8
Javaコンパイル速度とScalaコンパイル速度
私はしばらくScalaでプログラミングをしていて、それが好きですが、プログラムのコンパイルにかかる時間に悩まされています。それは小さなことのように思えますが、Javaを使用すると、プログラムに小さな変更を加え、netbeansの実行ボタンをクリックすると、BOOMが実行され、時間の経過とともにscalaでのコンパイルに多くの時間がかかるようです。多くの大規模なプロジェクトでは、コンパイルに時間がかかり、Javaを使用していたときに発生する必要がなかったため、スクリプト言語が非常に重要になると聞きました。 しかし、私が理解しているように、私はJavaから来ています。Javaは他のどのコンパイル言語よりも高速であり、Scalaに切り替えた理由のために高速です(非常に単純な言語です)。 だから私は尋ねたかったのですが、Scalaをより高速にコンパイルできますか?scalacはjavacと同じくらい高速になりますか?

3
PHPStorm IDEでの非効率なjQuery使用警告
最近、PHPStorm IDEのバージョンをアップグレードしましたが、jQueryの非効率的な使用について警告しています。 例えば: var property_single_location = $("#property [data-role='content'] .container"); この警告を表示します: jQueryセレクターが効率的に使用されていることを確認します。IDセレクターで始まる子孫セレクターを分割することを提案し、キャッシュされる可能性のある重複したセレクターについて警告します。 だから私の質問は: なぜこれが非効率的であり、上記のセレクターを行うための効率的な方法は何ですか? 私は推測します: var property_single_location = $("#property").find("[data-role='content']").find(".container"); これは正しい方法ですか?

6
BaseAdapterとArrayAdapterの違いは何ですか?
私が使用した場合の違いを知りたいBaseAdapterとしますArrayAdapter。 自分のやりたいことを実現してきましたArrayAdapters。 ListView実装されているアダプタインターフェイスのパフォーマンスに影響しますか? そして最後の質問は、ListViewこれらのいずれかを使用して何かを行うことはできますかAdapters、または特定のアダプターしか使用できない特定のケースがありますか?


10
JavaとC / C ++間のプロセス間通信のための最速(低レイテンシ)な方法
TCPソケットを介してC / C ++で開発された「サーバー」に接続するJavaアプリがあります。 アプリとサーバーの両方が同じマシン、Solarisボックスで実行されています(ただし、最終的にはLinuxへの移行を検討しています)。交換されるデータの種類は単純なメッセージです(ログイン、ログインACK、クライアントは何かを要求し、サーバーは応答します)。各メッセージの長さは約300バイトです。 現在はソケットを使用しており、すべて問題ありませんが、IPCメソッドを使用してデータを交換する(レイテンシを短縮する)より高速な方法を探しています。 私はネットを調査していて、次のテクノロジーへの参照を思いつきました: 共有メモリ パイプ キュー DMA(Direct Memory Access)と呼ばれるもの しかし、私はそれぞれのパフォーマンスの適切な分析を見つけることができませんでした。JAVAとC / C ++の両方でそれらを実装する方法も(彼らが互いに通信できるように)できませんでした。 このコンテキストでの各メソッドのパフォーマンスと実現可能性について誰かがコメントできますか?有用な実装情報へのポインタ/リンクはありますか? 編集/更新 ここで得たコメントと回答に続いて、パイプのすぐ上に構築されているように見えるUnixドメインソケットに関する情報を見つけ、TCPスタック全体を節約しました。これはプラットフォーム固有なので、JNIまたはjudsかjunixsocketのいずれかでテストする予定です。 次に考えられる手順は、パイプの直接実装、次に共有メモリですが、複雑さのレベルがさらに高いという警告を受けています... ご協力いただきありがとうございます
100 java  c++  performance  ipc  latency 

4
基本的なHerokuアプリの読み込みに2秒かかるのはなぜですか?
サービスをテストするために2つの非常にシンプルなHerokuアプリを作成しましたが、最初にアクセスしたときにページをロードするのに数秒かかることがよくあります。 Cropify -Basic Sinatraアプリ(github上) Textile2HTML-さらに基本的なSinatraアプリ(github上) 私がしたことは、単純なSinatraアプリを作成してデプロイすることだけでした。Herokuサーバーを台無しにしたり、テストしたりしたことはありません。応答時間を改善するにはどうすればよいですか?現在は非常に遅いため、どこから始めればよいかわかりません。それが役立つ場合、プロジェクトのコードはgithubにあります。
100 ruby  performance  heroku 

5
C ++の通常のポインターと比較して、スマートポインターのオーバーヘッドはどのくらいですか?
C ++ 11の通常のポインターと比較して、スマートポインターのオーバーヘッドはどのくらいですか?言い換えると、スマートポインターを使用するとコードが遅くなりますか? 具体的には、C ++ 11 std::shared_ptrとについて質問していstd::unique_ptrます。 明らかに、スタックを押し下げたものは大きくなります(少なくとも私はそう思います)。スマートポインターもその内部状態(参照カウントなど)を格納する必要があるため、問題は、実際にはどのくらいになるかです。パフォーマンスに影響がある場合はどうなりますか? たとえば、通常のポインタではなく、関数からスマートポインタを返します。 std::shared_ptr<const Value> getValue(); // versus const Value *getValue(); または、たとえば、関数の1つが通常のポインターの代わりにパラメーターとしてスマートポインターを受け入れる場合: void setValue(std::shared_ptr<const Value> val); // versus void setValue(const Value *val);

3
なぜLINQ JOINはWHEREとリンクするよりもはるかに高速なのですか?
私は最近VS 2010にアップグレードし、LINQ to Datasetで遊んでいます。ASP.NET WebApplicationのHttpCacheにある承認用の厳密に型指定されたデータセットがあります。 だから私は、ユーザーが何かをすることを許可されているかどうかを確認する最も速い方法が実際に何であるか知りたいと思った。ここに私のデータモデルと、誰かが興味を持っている場合のその他の情報があります。 私は3つの方法をチェックしました: 直接データベース Where条件が "Join"のLINQクエリ-構文 結合を使用したLINQクエリ-構文 これらは、各関数を1000回呼び出した結果です。 1.反復: 4,2841519秒。 115,7796925秒。 2,024749秒 2.Iteration: 3,1954857秒 84,97047秒 1,5783397秒 3.反復: 2,7922143秒 97,8713267秒。 1,8432163秒 平均: データベース:3,4239506333秒。 場所:99,5404964秒。 参加:1,815435秒 なぜLINQの初心者が最も読みやすいように見えますが、Joinバージョンはwhere構文よりもはるかに高速であり、役に立たなくなります。または、クエリで何かを見逃しましたか? これがLINQクエリです。データベースをスキップします。 どこ: Public Function hasAccessDS_Where(ByVal accessRule As String) As Boolean Dim userID As Guid = DirectCast(Membership.GetUser.ProviderUserKey, Guid) Dim query = From …

5
elseが最も多く行われたときにif-elif-elif-elseステートメントを作成する最も効率的な方法は?
99%の時間でelseステートメントが実行されるin if-elif-elif-elseステートメントがあります。 if something == 'this': doThis() elif something == 'that': doThat() elif something == 'there': doThere() else: doThisMostOfTheTime() この構成は多く行われますが、他の条件に達する前にすべての条件を通過するため、Pythonicは言うまでもなく、これはあまり効率的ではないと感じています。一方、これらの条件のいずれかが満たされているかどうかを知る必要があるため、とにかくそれをテストする必要があります。 これをより効率的に行うことができるかどうか、またどのように行うことができるか、これが単にそれを行うための最良の方法であるかを誰かが知っていますか?

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