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

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

4
Sieve of Eratosthenesアルゴリズムの時間の複雑さ
ウィキペディアから: アルゴリズムの複雑さは O(n(logn)(loglogn))ビット操作です。 どうやってそこに着くの? 複雑さというloglogn用語が含まれているということは、sqrt(n)どこかにあることを私に教えてくれます。 最初の100個の数字(n = 100)でふるいを実行していると仮定します。数字を複合としてマークするのに一定の時間がかかる(配列の実装)と仮定すると、使用mark_composite()する回数は次のようになります。 n/2 + n/3 + n/5 + n/7 + ... + n/97 = O(n^2) そして、次の素数を見つけるには(たとえば、の7倍数であるすべての数に取り消し線を引いた後にジャンプする5)、操作の数はになりますO(n)。 したがって、複雑さはになりますO(n^3)。同意しますか?


7
文字列がルビの正規表現と一致するかどうかを確認する最も速い方法は?
Rubyで文字列が正規表現に一致するかどうかを確認する最も速い方法は何ですか? 私の問題は、実行時に与えられる正規表現に一致するものを見つけるために、文字列の膨大なリストを「egrep」する必要があることです。文字列が正規表現と一致するかどうかだけに注意します。一致する場所や、一致するグループの内容は関係ありません。この仮定を使用して、コードが正規表現のマッチングに費やす時間を削減できることを願っています。 私は正規表現をロードします pattern = Regexp.new(ptx).freeze 私はそれstring =~ patternがより少し速いことを発見しましたstring.match(pattern)。 このテストをさらに速くするために使用できる他のトリックやショートカットはありますか?

13
C#とC-パフォーマンスの大きな違い
CとC#の類似コード間でパフォーマンスの大きな違いを見つけています。 Cコードは次のとおりです。 #include <stdio.h> #include <time.h> #include <math.h> main() { int i; double root; clock_t start = clock(); for (i = 0 ; i <= 100000000; i++){ root = sqrt(i); } printf("Time elapsed: %f\n", ((double)clock() - start) / CLOCKS_PER_SEC); } そして、C#(コンソールアプリ)は次のとおりです。 using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication2 { …
94 c#  c  performance 


10
Visual Studio 2017はビルドとデバッグ中に遅すぎる
次の仕様のPCにVisual Studio 2017をインストールしました。 Intel Xeon E5-1600 v3 @ 3.50 GHzプロセッサー、16 GB RAM、Windows 10 Pro 64ビットオペレーティングシステム。 PCのパフォーマンスはほぼ完璧ですが、Visual Studio 2017では特にビルドおよびデバッグプロセス中に、通常、速度の低下の問題が発生します。これに加えて、「応答なし」メッセージの後で再起動する必要がある場合があります。 Visual Studio 2017のこの問題に関する安定した解決策はありますか?

5
GithubをJavaScriptライブラリのCDNとして使用する必要がありますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 独自のサーバーではなくCDNからJavaScriptライブラリを提供することには、多大な利点があります。サーバーの作業量が少なく、CDNがサーバーよりもユーザーに近いコピーを作成できる可能性がありますが、最も重要なことは、ユーザーのブラウザーが既にそのURLからキャッシュしている可能性が高いことです。最後の1つは、誰にとっても総作業量が少ないことを意味します。そのため、これは明らかに勝ちとなり、私たち(開発者)がJavaScriptを提供するためにCDNに依存する可能性が高くなります。 しかし、人気のあるJavaScript CDN(Google、Microsoft、その他?)は少数のファイルのみをホストします。他の人にとっては、自分でホストするか、ソース管理サーバーを一種のCDNとして使用するかを選択できます。Githubやそれに類するものがグローバルに提供するために最適化されたファイルの地理的に分散されたキャッシュを持っている可能性は低いです。しかし、それが一般的な方法である場合、ユーザーのブラウザにキャッシュされる可能性はかなりあります。サーバーからgithubに作業をオフロードするという議論は、Githubが喜んでこれを自発的に申し出た場合にのみ有効です。 それで、それは一般的な習慣ですか?私たちはお互いにこれをするように勧めるべきですか?Githubは問題ありませんか?彼らは公式の方針を述べていますか?

5
EBPフレームポインターレジスタの目的は何ですか?
私はアセンブリ言語の初心者ですが、コンパイラーによって生成されたx86コードは、EBP他の何かのためにレジスターを使用できるリリース/最適化モードでも、通常フレームポインターを保持していることに気づきました。 フレームポインターがコードのデバッグを容易にする理由、およびalloca()関数内で呼び出された場合に必要になる理由を理解しています。ただし、x86には非常に少数のレジスターがあり、そのうちの2つを使用してスタックフレームの場所を保持する場合、私には意味がありません。最適化されたリリースやリリースビルドでも、フレームポインターを省略することが悪い考えと見なされるのはなぜですか?

6
JavaScriptの実行をプロファイルする最良の方法は何ですか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 6年前休業。 この質問を改善する JavaScriptに適したプロファイラーはありますか?firebugがコードのプロファイリングをある程度サポートしていることを知っています。しかし、私はより長いスケールで統計を決定したいと思います。多くのJavaScriptコードを作成していて、実際にコードのボトルネックとなっているものを特定したいとします。最初に、すべてのJavaScript関数と実行時間のプロファイル統計を確認したいと思います。次に、DOM関数を組み込みます。これと、Rendering Treeでの操作のように速度を落とすアクションを組み合わせると完璧です。私のコード、DOMの準備、またはレンダリングツリー/ビジュアルの更新でパフォーマンスが低下した場合、これは良い印象を与えると思います。 私が欲しいものに近いものはありますか?または、私が説明したことのほとんどを達成するための最良のツールは何でしょうか?自己コンパイルされたブラウザと、プロファイル機能によって拡張されたJavaScriptエンジンですか?

4
Androidアプリのプロファイルを作成するにはどうすればよいですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 この質問を改善する 私のAndroidアプリのどこにボトルネックがあるかを見つける必要があります。 どのプロファイリングツールまたはテクニックを使用できますか?

5
プロトタイプを使用する場合のJavascript
jsでプロトタイプメソッドを使用するのが適切な場合を理解したいと思います。常に使用する必要がありますか?または、それらを使用することが好ましくない場合やパフォーマンスが低下する場合がありますか? jsでの名前空間の一般的な方法でこのサイトを検索すると、ほとんどが非プロトタイプベースの実装を使用しているようです。単にオブジェクトまたは関数オブジェクトを使用して名前空間をカプセル化します。 クラスベースの言語から来たので、類似点を描き、プロトタイプは「クラス」のようなものであり、私が言及した名前空間の実装は静的メソッドのようなものだと考えるのは難しいことではありません。

9
ループの展開がまだ役立つ場合はいつですか?
ループのアンロールによって、パフォーマンスが非常に重要なコード(モンテカルロシミュレーション内で何百万回も呼び出されるクイックソートアルゴリズム)を最適化しようとしています。これは私がスピードアップしようとしている内側のループです: // Search for elements to swap. while(myArray[++index1] < pivot) {} while(pivot < myArray[--index2]) {} 私は次のようなものに展開してみました: while(true) { if(myArray[++index1] < pivot) break; if(myArray[++index1] < pivot) break; // More unrolling } while(true) { if(pivot < myArray[--index2]) break; if(pivot < myArray[--index2]) break; // More unrolling } これはまったく違いがなかったので、より読みやすい形式に戻しました。ループのアンロールを試みたときも、同様の経験をしました。最新のハードウェアでの分岐予測子の品質を考えた場合、ループの展開が依然として最適な有用な最適化となるのはいつですか?

13
Entity Frameworkが遅すぎる。私のオプションは何ですか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 3年前休業。 この質問を改善する 「時期尚早に最適化しない」というマントラに従い、Entity Frameworkを使用してWCFサービスをコーディングしました。 しかし、私はパフォーマンスのプロファイルを作成しましたが、Entity Frameworkは遅すぎます。(私のアプリは約1.2秒で2つのメッセージを処理しますが、私が書き直している(レガシー)アプリは同時に5〜6つのメッセージを処理します(レガシーアプリはDBアクセスのためにsprocsを呼び出します)。 私のプロファイリングは、Entity Frameworkがメッセージごとに大部分の時間を費やしていることを示しています。 それで、私の選択肢は何ですか? より良いORMはありますか? (オブジェクトの通常の読み取りと書き込みをサポートし、それを高速に実行するもの。) Entity Frameworkを高速化する方法はありますか? (注:速く言うと、最初の呼び出しではなく、長期的に意味します(最初の呼び出しは遅い(メッセージの場合15秒))が、それは問題ではありません。メッセージの。) サービスの速度を上げるのに役立ついくつかの神秘的な3番目のオプション。 注:私のDBインタラクションのほとんどは作成と更新です。選択と削除はほとんど行いません。

6
Entity Frameworkのクエリは遅いが、SqlQueryの同じSQLは速い
Entity Framework Code-Firstと.NET Frameworkバージョン4を使用した非常に単純なクエリに関連する、非常に奇妙なパフォーマンスがいくつかあります。LINQ2Entitiesクエリは次のようになります。 context.MyTables.Where(m => m.SomeStringProp == stringVar); 実行には3000ミリ秒以上かかります。生成されたSQLは非常にシンプルに見えます。 SELECT [Extent1].[ID], [Extent1].[SomeStringProp], [Extent1].[SomeOtherProp], ... FROM [MyTable] as [Extent1] WHERE [Extent1].[SomeStringProp] = '1234567890' このクエリは、Management Studioを通じて実行されると、ほぼ瞬時に実行されます。SqlQuery関数を使用するようにC#コードを変更すると、5〜10ミリ秒で実行されます。 context.MyTables.SqlQuery("SELECT [Extent1].[ID] ... WHERE [Extent1].[SomeStringProp] = @param", stringVar); したがって、まったく同じSQLであり、結果のエンティティはどちらの場合も変更が追跡されますが、2つの場合のパフォーマンスは大きく異なります。何ができますか?

8
データベースの電子メールアドレスの最適な長さはどれくらいですか?
以下は、EMAIL_ADDRESS列のデータ型とプロパティを反映した、クエリの抽出部分です。 EMAIL_ADDRESS CHARACTER VARYING(20) NOT NULL, ただし、John Saundersはを使用していVARYING(256)ます。 これは、必ずしもVARYINGを正しく理解しているわけではないことを示唆しています。 私の場合、メールアドレスの長さは20文字、Jodnの長さは256文字であると理解しています。 ジョンのコードのコンテキスト CREATE TABLE so."User" ( USER_ID SERIAL NOT NULL, USER_NAME CHARACTER VARYING(50) NOT NULL, EMAIL_ADDRESS CHARACTER VARYING(256) NOT NULL, // Here HASHED_PASSWORD so.HashedPassword NOT NULL, OPEN_ID CHARACTER VARYING(512), A_MODERATOR BOOLEAN, LOGGED_IN BOOLEAN, HAS_BEEN_SENT_A_MODERATOR_MESSAGE BOOLEAN, CONSTRAINT User_PK PRIMARY KEY(USER_ID) ); 普通の人が使う20文字以上のメールアドレスは見たことがありません。 …

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