問題タブ [performance]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ConfigurationManager.AppSettings のパフォーマンスに関する懸念事項
ConfigurationManager.AppSettings
すべての構成設定をアプリケーションの app.config セクションに (クラスを使用して) 保存する予定です。ユーザーがアプリの UI を使用して設定を変更すると (チェックボックスをクリックする、ラジオ ボタンを選択するなど)、それらの変更を に書き出す予定AppSettings
です。同時に、プログラムの実行中は、AppSettings
常にデータを処理するプロセスから常にアクセスする予定です。UI を介した設定の変更は、リアルタイムでデータ処理に影響を与える必要があるため、プロセスはAppSettings
常に にアクセスします。
これはパフォーマンスに関して良い考えですか?を使用AppSettings
することは、.Net アプリを作成するときに構成設定を保存してアクセスするための「正しい方法」であると思われますが、この方法は一定の負荷を意図していないのではないかと心配しています (少なくとも設定が常に読み取られるという点では)。
誰かがこれを経験したことがあるなら、私は大いに感謝します。
更新:おそらくいくつかの点を明確にする必要があります。
これは Web アプリケーションではないため、データベースをアプリケーションに接続することは、単に構成設定を保存するためだけにやり過ぎかもしれません。これは Windows フォーム アプリケーションです。
MSDN のドキュメントによると、ConfigurationManager
はアプリケーション レベルの設定だけでなく、ユーザー設定も保存するためのものです。(たとえば、アプリケーションが部分信頼アプリケーションとしてインストールされている場合は特に重要です。)
更新 2:Properties
アプリケーション (データベースなど) に追加のレイヤーを追加する必要がなく、確かに良いソリューションのように見えるため、lomaxx の回答を受け入れました。プロパティを使用する場合、他の人が提案したすべてのキャッシュが既に行われています。これは、すべての変更とその後の読み取りがすべてメモリ内で行われることを意味し、非常に高速になります。プロパティは、明示的に指示された場合にのみ変更をディスクに書き込みます。つまり、実行時にオンザフライで構成設定を変更し、プログラムの終了時にディスクへの最終的な保存のみを行うことができます。
必要な負荷を実際に処理できるかどうかを確認するために、ラップトップでテストを行ったところ、プロパティを使用して毎秒 750,000 回の読み取りと 7,500 回の書き込みを行うことができました。これは、私のアプリケーションが必要とするレベルをはるかに超えているため、パフォーマンスに影響を与えずにプロパティを使用しても安全だと感じています。
c# - DataTable ループのパフォーマンス比較
次のうち、最高のパフォーマンスを発揮するのはどれ?
JavaScript にメソッド 2 を実装して大幅なパフォーマンスの向上を見てきましたが、C# でのパフォーマンスの向上を測定できず、メソッド 1 のように記述した場合でも、コンパイラが既にメソッド 2 を実行しているかどうか疑問に思っていました。
方法 2 の背後にある理論は、コードが反復ごとに DataTable.Rows.Count にアクセスする必要はなく、int c に簡単にアクセスできるということです。
方法 1
方法 2
c# - CSharpCodeProvider のコンパイル パフォーマンス
CompileAssemblyFromDomはCompileAssemblyFromSourceより高速ですか?
おそらくコンパイラのフロントエンドをバイパスするはずです。
sql-server - LINQ を使用した場合のデータベース パフォーマンスのオーバーヘッドはどれくらいですか?
両方とも SQL Server 2008 バックエンドを使用し、ほとんどが低レベルの C でロードされたカスタムの最適化されたクエリと比較して、C# と LINQ を使用すると、データベース パフォーマンスのオーバーヘッドはどのくらいになりますか?
ここで具体的に考えているのは、かなりデータ集約型のプログラムがあり、画面ごとに少なくとも 1 回はデータの更新または更新を行い、50 ~ 100 人の同時ユーザーがいる場合です。
.net - .NETRemotingSpeedとVPN
クライアントアプリケーションとオブジェクトサーバー間の通信に.NETRemotingを使用するプロジェクトに取り組んでいます。開発の場合、クライアント、サーバー、およびMSSQLデータベースはすべてローカル開発マシンで実行されています。
私がオフィスで働いているときは、応答性は問題ありません。
ただし、自宅で仕事をしていると、速度が大幅に遅くなります。VPNから切断すると、速度が上がります(私は信じていますが、それは希望的観測かもしれません)。ワイヤレス接続を完全にオフにすると、すぐにフルスロットルになります。
私の想定では、リモーティングトラフィックは、ホームルーターやVPNに関係なく、すべての速度を低下させているポイントを経由してルーティングされています。
リモーティングトラフィックを完全にローカライズされたままにする方法について誰かが考えていますか?
performance - 時間によって条件付けられた重複をすばやく見つける方法
AIX を使用しないマシンでPERL
は、同じ ID を持ち、4 時間の間に登録された場合に重複していると見なされるレコードをフィルター処理する必要があります。
私はこのフィルターを使用して実装しAWK
、かなりうまく機能しますが、もっと速い解決策が必要です:
c# - String.Format は StringBuilder と同じくらい効率的ですか
これを行う C# の stringbuilder があるとします。
それは次のものと同じくらい効率的か、それ以上に効率的ですか?
もしそうなら、なぜですか?
編集
いくつかの興味深い回答の後、私が求めていることをもう少し明確にするべきだったと気づきました。文字列を連結するのにどちらが速いか、ある文字列を別の文字列に挿入するのにどちらが速いかをあまり求めていませんでした。
上記のどちらの場合でも、定義済みのテンプレート文字列の途中に 1 つ以上の文字列を挿入したいと考えています。
混乱させて申し訳ありません
performance - マルチコア マシンでのマルチスレッド アプリケーションのスケーリング
より多くのパフォーマンスが必要なプロジェクトに取り組んでいます。時間の経過とともに、(スレッドと分散の両方で) より並列に動作するように設計を進化させ続けてきました。その後の最新のステップは、その一部を 16 コアの新しいマシンに移動することでした。共有メモリ モデルでこれほど多くのコアにスケーリングする方法を再考する必要があることがわかりました。たとえば、標準のメモリ アロケータでは十分ではありません。
人々はどのリソースを推奨しますか?
これまでのところ、Sutter のコラム Dr. Dobbs が良い出発点であることがわかりました。The Art of Multiprocessor Programming と Intel Threading Building Blocks に関する O'Reilly の本を手に入れました
.net - 例外をスローする際のパフォーマンスに関する考慮事項
私は次のタイプのコードに何度も出くわしましたが、これが (パフォーマンスの観点から) 良い習慣であるかどうか疑問に思います:
基本的に、コーダーが行っていることは、例外をカスタム例外に含めて、それを再度スローすることです。
これは、次の 2 つとパフォーマンスがどのように異なりますか。
また
機能的またはコーディングのベスト プラクティスの議論はさておき、3 つのアプローチの間にパフォーマンスの違いはありますか?