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

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


8
パフォーマンスの観点からstd :: memcpy()またはstd :: copy()を使用する方が良いですか?
memcpy以下に示すように使用する方が良いstd::copy()ですか、それともパフォーマンスの観点から使用する方が良いですか?どうして? char *bits = NULL; ... bits = new (std::nothrow) char[((int *) copyMe->bits)[0]]; if (bits == NULL) { cout << "ERROR Not enough memory.\n"; exit(1); } memcpy (bits, copyMe->bits, ((int *) copyMe->bits)[0]);

4
JavaScriptで文字列を連結する最も効率的な方法は?
JavaScriptでは、多くの反復を含むループがあり、各反復で、多くの+=演算子を含む巨大な文字列を作成しています。文字列を作成するより効率的な方法はありますか?文字列を追加し続けて結合を行う動的配列を作成することを考えていました。誰もがこれを行う最も速い方法の例を説明して与えることができますか?

13
jQuery hasClass()-複数のクラスをチェックします
と: if(element.hasClass("class")) 1つのクラスを確認できますが、「要素」に多くのクラスがあるかどうかを確認する簡単な方法はありますか? 使ってます: if(element.hasClass("class") || element.hasClass("class") ... ) 悪くはありませんが、次のようなことを考えています。 if(element.hasClass("class", "class2") 残念ながら動作しません。 そのようなものはありますか?

4
SQL、Postgres OID、それらは何で、なぜ便利なのですか?
私はいくつかのPostgreSQLテーブルの作成を見ていますが、これに遭遇しました。 CREATE TABLE ( ... ) WITH ( OIDS = FALSE ); postgresが提供するドキュメントを読み、OOPからのオブジェクト識別子の概念を知っていますが、それでもわかりません。 なぜそのような識別子がデータベースで役立つのでしょうか? クエリを短くするには? いつ使用すべきですか?

12
StringBuilderと同じくらい効率的なString.Formatです。
これを行うC#の文字列ビルダーがあるとします。 StringBuilder sb = new StringBuilder(); string cat = "cat"; sb.Append("the ").Append(cat).(" in the hat"); string s = sb.ToString(); それは次のものと同じくらい効率的ですか、それとももっと効率的ですか? string cat = "cat"; string s = String.Format("The {0} in the hat", cat); もしそうなら、なぜですか? 編集 いくつか興味深い答えを見つけた後、私はおそらく私が求めていることをもう少し明確にすべきであることに気づきました。文字列を連結する方が速いのではなく、ある文字列を別の文字列に挿入する方が速いのではないかと私はそれほど質問していませんでした。 上記のどちらの場合でも、事前定義されたテンプレート文字列の中央に1つ以上の文字列を挿入します。 混乱させて申し訳ありません

8
Scala対Java、パフォーマンスとメモリ?[閉まっている]
現在のところ、この質問は、Q&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 私はScalaを調べたくて、答えを見つけることができないように思えない基本的な質問があります。一般的に、ScalaとJavaの間でパフォーマンスとメモリの使用量に違いはありますか?

6
ネストされた重みがパフォーマンスに悪いのはなぜですか?代替案?
layout_weight属性を使用して異なるビュー間の比率を作成するいくつかのレイアウトファイルを作成しました。 ある時点で、ネストされた重みに関するlint警告が出始めます。 したがって、ネストされた重みがパフォーマンスに悪いのはなぜか、および異なる画面サイズに使用でき、多くのディメンションdpi値を指定する必要がないビューディメンション間に一定の比率を作成するより効率的な方法があるかどうかと思います。いくつかのレイアウトファイル(異なる画面サイズの場合)を介して。 ありがとうございました!

15
CPUキャッシュを最大限に活用してパフォーマンスを向上させるコードをどのように記述しますか?
これは主観的な質問のように聞こえるかもしれませんが、私が探しているのは、これに関連して遭遇した特定のインスタンスです。 コード、キャッシュを効果的/キャッシュフレンドリーにする方法(キャッシュヒットを増やし、キャッシュミスをできるだけ少なくする)?両方の観点から、データキャッシュとプログラムキャッシュ(命令キャッシュ)、つまり、データ構造とコード構成に関連する、コード内のどの部分を、キャッシュを効果的にするために注意する必要があります。 コードキャッシュを効果的にするために、使用/回避しなければならない特定のデータ構造があるか、またはその構造のメンバーにアクセスする特定の方法などがあるか。 この問題については、プログラムの構造(if、for、switch、break、gotoなど...)、コードフロー(ifの内部、ifの内部などの場合)をフォロー/回避する必要がありますか? キャッシュを効率的なコードにすることに関する個々の経験を聞くのを楽しみにしています。プログラミング言語(C、C ++、アセンブリなど)、ハードウェアターゲット(ARM、Intel、PowerPCなど)、OS(Windows、Linux、S ymbianなど)などを使用できます。 。 多様性はそれを深く理解するのに役立ちます。

14
サブクエリと結合
次のようなサブクエリの代わりに内部結合を使用するために、別の会社から継承したアプリケーションの遅いセクションをリファクタリングしました。 WHERE id IN (SELECT id FROM ...) リファクタリングされたクエリは、約100倍速く実行されます。(〜50秒から〜0.3)改善が期待されていましたが、それがそれほど劇的だった理由を誰かが説明できますか?where句で使用される列にはすべてインデックスが付けられました。SQLはクエリをwhere句で行ごとに1回実行しますか? 更新 -結果の説明: 違いは「where id in()」クエリの2番目の部分にあります- 2 DEPENDENT SUBQUERY submission_tags ref st_tag_id st_tag_id 4 const 2966 Using where vs結合された1つのインデックス付き行: SIMPLE s eq_ref PRIMARY PRIMARY 4 newsladder_production.st.submission_id 1 Using index

8
プロパティに属性があるかどうかを確認する
属性付きのクラスのプロパティが与えられた場合-特定の属性が含まれているかどうかを判断する最も速い方法は何ですか?例えば: [IsNotNullable] [IsPK] [IsIdentity] [SequenceNameAttribute("Id")] public Int32 Id { get { return _Id; } set { _Id = value; } } たとえば、「IsIdentity」属性があることを確認する最も速い方法は何ですか?
158 c#  performance 


6
TeamViewerはどのように高速ですか?
長さについて申し訳ありません、それはちょっと必要です。 前書き 私は、Windows Vista / 7用のC#4.0でリモートデスクトップソフトウェア(楽しみのために)を開発しています。基本的な障害を乗り越えました:堅牢なUDPメッセージングシステム、比較的クリーンなプログラム設計、ミラードライバー(DemoForgeからの無料のDFMirageミラードライバー)が稼働しており、すべてにNATトラバーサルを実装しています対称NATを除くNATタイプ(企業ファイアウォールの状況に存在)。 画面の転送/共有については、ミラードライバーのおかげで、変更された画面領域が自動的に通知され、ミラードライバーの絶えず変化する画面ビットマップを自分のビットマップにマーシャリングできます。次に、画面領域をPNGとして圧縮し、サーバーからクライアントに送信します。物事はかなり良いように見えますが、十分に速くはありません。VNCと同じくらい遅いです(ところで、私はVNCプロトコルを使用せず、カスタムのアマチュアプロトコルを使用しています)。 最も遅いリモートデスクトップソフトウェアから最も速いリモートデスクトップソフトウェアまで、リストは通常​​、すべてのVNCのような実装で始まり、Microsoft Windowsリモートデスクトップ...、そして... TeamViewerまで続きます。CrossLoop、LogMeInについてはよくわかりません-私はそれらを使用していませんが、TeamViewerは非常に高速です。文字通りライブです。treeコマンドプロンプトでコマンドを実行したところ、20ミリ秒の遅延で更新されました。私のラップトップよりも数ミリ秒遅いWebを閲覧できます。Visual Studioでコードを垂直にスクロールすると、ラグ時間が50ミリ秒になります。これをすべて実現するには、TeamViewerの画面転送ソリューションがどれほど堅牢でなければならないかを考えてください。 VNCは、ポーリングベースのフックを使用して、画面の変化を検出し、ブルートフォース画面のキャプチャ/比較を最悪の場合に行います。最高の状態では、DFMirageのようなミラードライバーを使用します。私はこのレベルです。また、RFBプロトコルと呼ばれるものを使用しています。 Microsoft Windowsリモートデスクトップは、明らかにVNCよりも1段階高くなっています。StackOverflowのどこかから、Windowsリモートデスクトップは画面のビットマップを送信せず、実際の描画コマンドを送信すると聞きました。単純なテキストを送信できるため、これは非常に素晴らしいです(この長方形をこの座標で描画し、このグラデーションで色付けします)。リモートデスクトップは非常に高速で、自宅で作業するための標準的な方法です。また、RDPプロトコルと呼ばれるものを使用します。 今、TeamViewerは私にとって完全な謎です。どうやら、彼らはバージョン2のソースコードをリリースしました(TeamViewerは2012年2月現在のバージョン7)。人々はそれを読んで、バージョン2は役に立たないと言った-それは自動NATトラバーサルによるVNCのほんのいくつかの改善だ。 しかし、バージョン7 ...今は途方もなく高速です。つまり、実際にはWindowsリモートデスクトップよりも高速です。TeamViewerでDirectX 3Dゲームをストリーミングしました(1 fpsですが、WindowsリモートデスクトップではDirectXを実行することもできません)。 ちなみに、TeamViewerはミラードライバーなしでこれらすべてを行います。インストールするオプションがあり、少し速くなります。 質問 私の質問は、TeamViewerはどのくらい高速なのですか?それは不可能であってはなりません。24ビットの深さでも1920 x 1080の解像度がある場合(16ビットの深さはかなり醜いでしょう)、それでも未加工の6,220,800バイトです。libjpeg-turbo(大企業で使用されている最速のJPG圧縮ライブラリの1つ)を使用して30KBに圧縮すると(非常に寛大にしましょう)、TeamViewerのサーバーを介してルーティングするのに時間がかかります(TeamViewerは、トラフィックをプロキシするだけで、企業の対称NATをバイパスします彼らのサーバー)。そして、そのlibjpeg-turbo圧縮は圧縮に時間がかかります。高品質のJPG圧縮は、1920 x 1080のフルスクリーンショットで175ミリ秒かかります。そして、ホストのコンピューターがAtomプロセッサーを実行している場合、その数は増えます。TeamViewerが画面転送をどのように最適化したかがわかりません。繰り返しになりますが、小さなサイズの画像は高度に圧縮されている可能性があります。ただし、圧縮には少なくとも数十ミリ秒かかります。大きなサイズの画像は圧縮に時間がかかりませんが、処理に時間がかかります。どういうわけか、TeamViewerはこのプロセス全体を完了して、毎秒約20〜25フレームを取得します。私はネットワークモニタを使用しましたが、TeamViewerは500 Kbpsと1 Mbpsの速度でも遅延がありません(その転送速度ではVNCソフトウェアは数秒間遅延します)。私の中にtreeコマンドプロンプトテストでは、TeamViewerは1 Mbpsの速度でインバウンドデータを受信し、それでも5〜6 fpsを実行していました。VNCとリモートデスクトップはそれを行いません。では、どうやって? 答えはやや複雑で複雑になるため、TCPの代わりにUDPを使用しているためだと言ってはいけない場合は、$ 0.02を投稿しないでください(実際にTCPを同じように使用していると思いますか)。 StackOverflowのどこかにTeamViewer開発者がいることを願っています。 潜在的な答え 人々が返信したら、これを更新します。 私の考えは、まず第一に、TeamViewerは非常に細かいネットワーク制御を持っているということです。たとえば、大きなパケットをMTUサイズのすぐ下に分割し、トリップを無駄にすることはありません。おそらく、非常に高速なXOR画像比較とともに、画面の変化を検出するためのあらゆる種類のファンシーフックがあります。

10
PHPに配列キーが存在するかどうかを判断するのに、より迅速で優れた方法は何ですか?
次の2つの例を検討してください... $key = 'jim'; // example 1 if (isset($array[$key])) { // ... } // example 2 if (array_key_exists($key, $array)) { // ... } これらのどちらが良いか知りたいです。私は常に最初のものを使用してきましたが、多くの人々がこのサイトで2番目の例を使用するのを見てきました。 それで、どちらが良いですか?もっと早く?より明確な意図?
157 php  performance 

9
FileInputStreamを使用する場合、どのようにして理想的なバッファサイズを決定しますか?
ファイルからMessageDigest(ハッシュ)を作成するメソッドがあり、これを多数のファイル(> = 100,000)に対して実行する必要があります。パフォーマンスを最大化するには、ファイルからの読み取りに使用するバッファーをどのくらい大きくする必要がありますか? ほとんどの人は基本的なコードに慣れています(念のためここで繰り返します)。 MessageDigest md = MessageDigest.getInstance( "SHA" ); FileInputStream ios = new FileInputStream( "myfile.bmp" ); byte[] buffer = new byte[4 * 1024]; // what should this value be? int read = 0; while( ( read = ios.read( buffer ) ) > 0 ) md.update( buffer, 0, read ); …

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