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

アプリケーションのパフォーマンスの向上に関する質問です。これは、ソフトウェアアーキテクチャの選択からアルゴリズムの選択までさまざまです。

14
多くの開発者がパフォーマンス、可読性、保守性が共存できないと考えるのはなぜですか?
この質問に答えながら、なぜ多くの開発者が優れた設計がパフォーマンスを考慮すべきではないと考えるのか疑問に思い始めました。なぜなら、そうすると読みやすさや保守性に影響するからです。 優れたデザインでは、執筆時にパフォーマンスも考慮され、優れたデザインの優秀な開発者は、可読性や保守性に悪影響を与えることなく効率的なプログラムを作成できると考えています。 極端な場合があることは承知していますが、なぜ多くの開発者が効率的なプログラム/設計が読みやすさや保守性の低下をもたらすと主張するのでしょうか?

4
C、C ++などのJITコンパイラ
CやC ++などのコンパイル言語用のジャストインタイムコンパイラはありますか?(頭に浮かぶ最初の名前はClangとLLVMです!しかし、私は彼らが現在それをサポートしているとは思いません。) 説明: このソフトウェアは、CやC ++などのコンパイルされたマシン言語でも、ランタイムプロファイリングフィードバックと、実行時のホットスポットの積極的に最適化された再コンパイルの恩恵を受けると思います。 プロファイルに基づく最適化も同様の仕事をしますが、異なる環境ではJITがより柔軟になります。PGOでは、リリースする前にバイナリを実行します。リリース後、実行時に収集された環境/入力フィードバックは使用されません。そのため、入力パターンが変更された場合、パフォーマンスの低下が発生します。しかし、JITはそのような状況でもうまく機能します。 ただし、JITコンパイルのパフォーマンス上の利点がそれ自体のオーバーヘッドを上回るかどうかについては議論の余地があると思います。

1
SQLiteデータベースの現実的で現実的な最大サイズとは何ですか?
SQLiteの適切な使用に関するこの記事によると、SQLiteは140テラバイトに制限されていますが、クライアント/サーバーRDBMSはより適切に動作する可能性があります。 SQLiteデータベースのサイズは、140テラバイト(2 47バイト、128ティビバイト)に制限されています。また、より大きなデータベースを処理できたとしても、SQLiteはデータベース全体を単一のディスクファイルに保存し、多くのファイルシステムはファイルの最大サイズをこれよりも小さいものに制限します。したがって、この規模のデータベースを検討している場合は、コンテンツを複数のディスクファイル、おそらく複数のボリュームに分散するクライアント/サーバーデータベースエンジンの使用を検討することをお勧めします。 一般的に、私はこれに同意しますが、SQLiteの最大制限が非常に高いことを知って驚いたのです!私の経験では、30〜100GBのサイズのSQL Serverデータベースをかなり使用しました。また、Oracle、Postgres、またはCassandraを使用して、はるかに大きなデータベースを間接的に操作しました。そのうち、少なくとも私の知る限り、140TBに近づいている人はいませんでした。私はDBAではないので、これは私の直接的な経験から「大」と考えるものです。 データベースが小さい場合にのみ、SQLiteを検討しました。最大で数十メガバイト。 この記事を読んだ後でも、数百ギガバイトを必要とするかもしれないもののためにSQLiteを検討することをまだ確信していません。しかし、その能力を過小評価していたのではないかと思っています。実際の使用でのSQLiteデータベースの現実的な最大サイズ制限とは何ですか?

7
パフォーマンスのためにCで作成しますか?[閉まっている]
Cは通常C ++よりもパフォーマンスが優れているとよく耳にします。MSVCがCの最新の標準をサポートしていないように思えるまで、それ以外のことは何も考えていませんでしたが、最新のものはC99をサポートしています(私の知る限り)。 OpenGLでレンダリングするためのコードを含むライブラリを作成して、再利用できるようにすることを計画していました。グラフィックに関しては、パフォーマンスの向上を歓迎するため、ライブラリをCで作成することを計画していました。 しかし、それは本当に価値があるでしょうか?ライブラリを使用するコードはおそらくC ++で書かれているため、一般的にはC ++でコーディングすることを好みます。 ただし、パフォーマンスにわずかな違いさえ生じる場合は、Cを使用します。 また、このライブラリは、Windows / OS X / Linux全体で動作するようにするものであり、すべてをネイティブにコンパイルする可能性があります(Windows用のMSVC、OS X用のClangまたはGCC、およびLinux用のGCC)。 。またはおそらくすべてのインテルのコンパイラ)。 私は周りを見回し、いくつかのベンチマークなどを見つけましたが、私が見たものはすべて、MSVCとClangではなくGCCを扱っています。また、ベンチマークでは使用言語の標準については言及していません。誰もこれについて考えていますか? 編集:数年以上の経験を経て、この質問に対する私の見解を共有したかっただけです。C ++でこの質問をしていたプロジェクトを書くことになりました。私は、Cでリンクできるようにするために、できる限り少量のパフォーマンスを引き出したいと考えていたのと同じ頃に、Cで別のプロジェクトを開始しました。数ヶ月前、私は本当にマップと高度な文字列操作。私はC ++標準ライブラリのこの能力を知っていて、最終的に標準ライブラリのそれらの構造は、妥当な時間内にCで実装できるマップや文字列よりもパフォーマンスが高く安定しているという結論に達しました。Cでリンク可能であるという要件は、C ++コードへのCインターフェイスを記述することで簡単に満たされました。これは、不透明(OPAQUE)型で迅速に行われました。C ++でのライブラリの書き換えは、Cでの書き込みよりもはるかに高速であるようで、バグ、特にメモリリークが発生しにくい傾向がありました。プラットフォーム固有の実装を使用するよりもはるかに簡単な標準ライブラリスレッドライブラリを使用することもできました。最終的には、C ++でライブラリを作成することで、パフォーマンスコストをわずかに抑えながら大きなメリットを得ることができたと思います。私はまだC ++バージョンのベンチマークを行っていませんが、私が書いたものよりも標準ライブラリのデータ構造を使用することで、ある程度のパフォーマンスを得た可能性さえあると信じています。ライブラリをC ++で記述すると、パフォーマンスコストはおそらくわずかですが、大きなメリットが得られたと思います。私はまだC ++バージョンのベンチマークを行っていませんが、私が書いたものよりも標準ライブラリのデータ構造を使用することで、ある程度のパフォーマンスを得た可能性さえあると信じています。ライブラリをC ++で記述すると、パフォーマンスコストはおそらくわずかですが、大きなメリットが得られたと思います。私はまだC ++バージョンのベンチマークを行っていませんが、私が書いたものよりも標準ライブラリのデータ構造を使用することで、ある程度のパフォーマンスを得た可能性さえあると信じています。

2
スケーラブルな通知システムを設計する方法は?[閉まっている]
通知システムマネージャーを作成する必要があります。 私の要件は次のとおりです。 異なるプラットフォームで通知を送信できる必要がありますが、これは完全に異なる場合があります(たとえば、SMSまたはEメールのいずれかを送信できる必要があります)。 通知は、特定のプラットフォームのすべての受信者で同じ場合もありますが、プラットフォームごとの受信者(または複数)ごとの通知である場合もあります。 各通知にはプラットフォーム固有のペイロードを含めることができます(たとえば、MMSにはサウンドまたは画像を含めることができます)。 システムはスケーラブルである必要があり、アプリケーションまたはサーバーをクラッシュさせることなく、非常に大量の通知を送信できる必要があります。 これは2段階のプロセスです。最初に顧客がメッセージを入力し、送信先のプラットフォームを選択します。その後、リアルタイムで処理されるように通知を作成する必要があります。 次に、システムはプラットフォームプロバイダーに通知を送信する必要があります。 今のところ、私はいくつかの結果になりますが、どれだけスケーラブルであるか、またはそれが良いデザインであるかどうかはわかりません。 私は次のオブジェクトを(疑似言語で)しました: 汎用Notificationオブジェクト: class Notification { String $message; Payload $payload; Collection<Recipient> $recipients; } 次のオブジェクトの問題は、受信者が1.000.000だったらどうなりますか?Recipientオブジェクトが非常に小さい場合でも、メモリを大量に消費します。 受信者ごとに1つの通知を作成することもできますが、一部のプラットフォームプロバイダーはバッチで送信する必要があるため、複数の受信者で1つの通知を定義する必要があります。 作成された各通知は、DBやRedisなどの永続ストレージに保存できます。 これを後で集約してスケーラブルであることを確認するのは良いことでしょうか? 2番目のステップで、この通知を処理する必要があります。 しかし、適切なプラットフォームプロバイダーへの通知をどのように区別できますか? をMMSNotification拡張するようなオブジェクトを使用する必要がありabstract Notificationますか?または何かのようなNotification.setType('MMS')? 大量の通知を同時に処理できるようにするには、RabbitMQのようなメッセージングキューシステムが適切なツールであると考えています。それは...ですか? これにより、大量の通知をキューに入れ、複数のワーカーに通知をポップして処理させることができます。しかし、上記のように受信者をバッチ処理する必要がある場合はどうなりますか? 次に、プラットフォームプロバイダーを接続して通知を実行するために、それぞれNotificationProcessor追加できるオブジェクトを担当することを想像します。NotificationHandlerNotificationHandler を使用しEventManagerて、プラグイン可能な動作を許可することもできます。 フィードバックやアイデアはありますか? お時間をいただきありがとうございます。 注:私はPHPでの作業に慣れており、おそらく選択した言語です。 編集 (morphunrealの答えによる) 1秒間に送信するメッセージの数(現在/初期レベルを定義し、再設計する前にシステムが処理する必要がある最大レベルを定義します) システムのハードウェア制約(システムで使用可能なメモリ、CPUなど) ハードウェアはどのように拡張されますか(つまり、サーバーの追加、クラウドコンピューティングなど) どの言語/システムが通知を生成しますか? 通知はプログラムで作成しますが、UIから作成するのは私自身です。 ジェネレーターはメッセージの受信者を知っていますか(?)、または他の手段で提供されていますか(つまり、特定のアラートタイプのビジネスルールは特定の受信者に送信されます) 特定の受信者、受信者のグループ(たとえば、タグシステムを使用)、またはプラットフォーム全体に対して通知を作成できる必要があります。 CC / BCC /開封確認を追加するためのビジネスルールはありますか はい。これは実際にはプラットフォーム固有であり、readまたはccはすべてのプラットフォームで利用できるわけではないことに注意してください。 …

10
C ++でベクターを介してリストを使用する意味は何ですか?
C ++リストとベクターを含む3つの異なる実験を実行しました。 中間に多くの挿入が含まれていた場合でも、ベクトルを使用したものはより効率的であることが証明されました。 したがって、質問:どの場合、リストはベクトルよりも意味がありますか? ほとんどの場合、ベクトルがより効率的であると思われ、それらのメンバーがどれだけ似ているかを考えると、リストにはどの利点が残っていますか? N個の整数を生成し、コンテナに入れて、コンテナがソートされたままになるようにします。挿入は、要素を1つずつ読み取り、最初の大きい要素の直前に新しい要素を挿入することにより、単純に実行されました。 リストを使用すると、ベクトルと比較して寸法が大きくなると屋根を通過します。 コンテナの最後にN個の整数を挿入します。 リストとベクトルの場合、時間は同じ桁数増加しましたが、ベクトルの場合は3倍高速でした。 コンテナにN個の整数を挿入します。 タイマーを開始します。 リストにはlist.sortを使用し、ベクターにはstd :: sortを使用してコンテナをソートします。タイマーを停止します。 繰り返しますが、時間は同じ桁で増加しますが、ベクトルでは平均で5倍速くなります。 引き続きテストを実行し、リストの方が良い例がいくつか見つかるかもしれません。 しかし、このメッセージを読んでいる皆さんの共同経験は、より生産的な答えを提供するかもしれません。 リストの使用がより便利だったり、パフォーマンスが向上したりする状況に出くわしたことがありますか?

8
コンシューマーアプリのパフォーマンスが低下する原因は何ですか?[閉まっている]
私のComcast DVRはすべてのリモートコントロールキー押下に応答するのに少なくとも3秒かかり、テレビを見るという単純なタスクをイライラするボタンマッシングエクスペリエンスにします。私のiPhoneはテキストメッセージを表示するのに少なくとも15秒かかり、iPodアプリを起動しようとする時間の1/4でクラッシュします。単にメールを受信して​​読むには、1分以上かかることがよくあります。私の車のnavcomでさえ、どろどろで無反応のコントロールを備えており、数秒以内に離すと連続した入力を飲み込むことがよくあります。 これらはすべて、ユーザビリティを最優先すべき固定ハードウェアの最終消費者向けアプライアンスですが、それでも基本的な応答性とレイテンシーで失敗します。彼らのソフトウェアは遅すぎる。 この背後には何がありますか?それは技術的な問題ですか、それとも社会的な問題ですか?誰または何が責任を負いますか? これらはすべて、ネイティブコードではなく、管理されたガベージコレクションされた言語で記述されているためですか?これらのデバイス用のソフトウェアを作成したのは個々のプログラマーですか?これらのすべてのケースで、アプリ開発者はターゲットとするハードウェアプラットフォームとその機能を正確に把握していました。彼らはそれを考慮しませんでしたか?「最適化はすべての悪の根源である」と繰り返し言っている人ですか?それらすべてのミリ秒が合計して数分になるまで、それは毎回「おお、それはちょうど100msだけです」という考え方でしたか?そもそもこれらの製品を購入したのは私のせいですか? それはいくつかの点でたときにはっきりと「パフォーマンスが問題ではない、ああ、コードのスピードを心配しないでください」これは、単一の答えと主観的な質問ですが、私は頻繁に言って、ここで非常に多くの回答を見てイライラしていないため問題遅い、応答しない、ひどい体験にこだわるエンドユーザー。 それでは、これらの製品のどの時点で問題が発生しましたか?プログラマーとして、私たち自身の顧客にこの痛みを与えないようにするために私たちは何ができますか?

18
開発チームは、コンシューマーアプリのパフォーマンスの低下をどのように防ぐことができますか?
以前に遅いソフトウェアの原因を尋ねたとき、受け取ったいくつかの回答は、それが社会的および管理上の問題であることを示唆していました: これは技術的な問題ではなく、マーケティングと管理の問題です。...結局のところ、製品マネージャーはユーザーが得ようとしているものの仕様を記述する責任があります。多くの問題が発生する可能性があります:プロダクトマネージャーが仕様にボタンレスポンスを配置できません...プログラマーはそれを補うことができません。— ボブ・マーフィー 人々は適切なサイズのアプリで作業します。動作すると、バグのようにパフォーマンスの問題が忍び込んでいきます。違いは-バグは「悪い」-彼らは「私を見つけて、私を直して」と叫ぶことです。パフォーマンスの問題はただそこにあり、悪化します。プログラマーは、「まあ、私のコードにパフォーマンスの問題はないだろう。むしろ、管理者は私に新しい/より大きい/速いマシンを購入する必要がある」と考えます。実際、開発者が定期的にパフォーマンスの問題を探しているだけの場合(実際には非常に簡単です)、単純にそれらを削除できます。— マイク・ダンレイビー それで、これが社会的な問題である場合、顧客に遅いソフトウェアを出荷することを避けるために、組織はどのような社会的メカニズムを導入できますか?
32 performance  ui 

6
クイックソートが実際に他のソートアルゴリズムよりも優れているのはなぜですか?
これはJanomaによるcs.SE に関する質問の再投稿です。彼またはcs.SEへの完全なクレジットと台無し。 標準アルゴリズムコースでは、クイックソートは平均でO(n log n)であり、最悪の場合はO(n²)であると教えられています。同時に、最悪の場合(mergesortやheapsortのような)O(n log n)であり、最高の場合(bubblesortのような)でも線形時間であるが、メモリの追加の必要性がある他のソートアルゴリズムが研究されています。 いくつかの実行時間をひと目見た後、クイックソートは他の効率ほど効率的であってはならないと言うのが自然です。 また、学生は基本的なプログラミングコースで、再帰があまりにも多くのメモリを使用するなどの理由であまり良くないことを学ぶと考えてください。したがって(これは本当の議論ではありませんが)、これはクイックソートがそうではないという考えを与えますそれは再帰アルゴリズムであるため、本当に良いです。 それでは、実際にクイックソートが実際に他のソートアルゴリズムよりも優れているのはなぜですか?実世界のデータの構造に関係していますか?コンピューターでのメモリの動作方法に関係していますか?一部のメモリは他のメモリよりもはるかに高速であることは知っていますが、それがこの直感に反するパフォーマンスの本当の理由であるかどうかはわかりません(理論的な推定と比較した場合)。

2
低レイテンシJavaの記述[終了]
Javaで低レイテンシコードを記述するためのJava固有の手法(C ++には当てはまらないもの)はありますか?私はJavaの低レイテンシーの役割をよく見ますが、彼らは低レイテンシーのJavaを書いた経験を求めます。 私が考えることができる唯一の考えは、JNIの経験、ネイティブコードへのI / O呼び出しのアウトソーシングです。また、場合によってはディスラプターパターンを使用しますが、それは実際のテクノロジーではありません。 低レイテンシコードを記述するためのJava固有のヒントはありますか? リアルタイムJava仕様があることは承知していますが、リアルタイムは低遅延と同じではないと警告されています。

10
Javaのテンプレート「メタプログラミング」は良いアイデアですか?
非常にパフォーマンスに敏感ないくつかの関数(1秒あたり数百万回と呼ばれる)を持つかなり大きなプロジェクトにソースファイルがあります。実際、以前のメンテナーは、1つの関数で条件のチェックに費やす時間を節約するために、それぞれわずかに異なる関数のコピーを12個書くことにしました。 残念ながら、これはコードが維持するPITAであることを意味します。重複するコードをすべて削除し、テンプレートを1つだけ作成したいと思います。ただし、Java言語はテンプレートをサポートしていないため、ジェネリックがこれに適しているかどうかはわかりません。 私の現在の計画は、代わりに関数の12個のコピーを生成するファイル(実際には1回限りのテンプレート拡張機能)を書くことです。もちろん、ファイルをプログラムで生成する必要がある理由については、豊富な説明を提供します。 私の懸念は、これが将来のメンテナーの混乱につながり、変更後にファイルを再生成するのを忘れると厄介なバグを引き起こす可能性があることです。残念ながら、C ++ですべてを書き直すまで、これを修正する方法はありません。 このアプローチの利点は欠点を上回っていますか?代わりに: パフォーマンスに打撃を与え、単一の保守可能な機能を使用します。 関数を12回複製する必要がある理由の説明を追加し、保守の負担を丁寧に負担します。 ジェネリックをテンプレートとして使用することを試みます(それらはおそらくそのようには動作しません)。 単一の関数にコードをパフォーマンスに依存させるという古いメンテナーに大声で叫ぶ。 パフォーマンスと保守性を維持する他の方法は? PSプロジェクトの設計が貧弱であるため、関数のプロファイリングはかなりトリッキーです...しかし、前のメンテナーは、パフォーマンスの低下は許容できないと私に確信させました。これは彼が5%以上を意味すると思いますが、それは私の側の完全な推測です。 おそらく少し詳しく説明する必要があります。12個のコピーは非常によく似たタスクを実行しますが、わずかな違いがあります。違いは関数全体のさまざまな場所にあるため、残念ながら多くの条件文があります。事実上、6つの操作の「モード」と2つの操作の「パラダイム」があります(自分で作成した単語)。関数を使用するには、操作の「モード」と「パラダイム」を指定します。これは決して動的ではありません。コードの各部分は、厳密に1つのモードとパラダイムを使用します。12のモードパラダイムペアはすべて、アプリケーションのどこかで使用されます。これらの関数には、func1〜func12という適切な名前が付けられ、偶数が2番目のパラダイムを表し、奇数が最初のパラダイムを表します。 保守性が目標であれば、これは最悪の設計であることを認識しています。しかし、それは「十分に速い」と思われ、このコードはしばらく変更を必要としませんでした...元の関数が削除されていないことにも注意する価値があります(ただし、私が知る限り、それはデッドコードです) 、したがって、リファクタリングは簡単になります。

15
現代のコンピューティングの時代、「典型的なビジネスアプリ」-なぜパフォーマンスが重要なのですか?[閉まっている]
これは一部の人にとっては奇妙な質問のように思えるかもしれません。 私は趣味のJavaプログラマーです。いくつかのゲーム、音楽を作成するAIプログラム、ペイント用の別のプログラムなどを開発しました。これは、私がプログラミングの経験を持っているが、ビジネスアプリケーションの専門的な開発の経験がないことを伝えるためです。 このサイトでパフォーマンスについて多くの話を聞いています。多くの場合、タスクを実行するためにC#で最も効率的なアルゴリズムとは何か、Pythonが低速でJavaが高速な理由などについて議論されています。 私が理解しようとしているのは、なぜこれが重要なのですか? パフォーマンスが重要な理由がわかるコンピューティングの特定の領域があります:ゲーム、一定の更新ループで毎秒何万もの計算が行われている、OSやVMなどの他のプログラムが依存している低レベルシステム しかし、通常の典型的な高レベルビジネスアプリの場合、なぜパフォーマンスが重要なのでしょうか? 何十年も前に、なぜそれが重要であったのかを理解できます。コンピューターは非常に遅く、メモリもはるかに少なかったため、これらのことについて慎重に考える必要がありました。 しかし、今日、私たちには非常に多くのメモリがあり、コンピューターは非常に高速です:特定のJavaアルゴリズムがO(n ^ 2)であるかどうかは実際に重要ですか?この典型的なビジネスアプリのエンドユーザーに実際に違いをもたらすのでしょうか? 典型的なビジネスアプリでGUIボタンを押すと、背後でO(n ^ 2)アルゴリズムが呼び出されますが、最近のコンピューティングの時代では、実際に非効率を感じていますか? 私の質問は2つに分かれています。 実際、今日の典型的な通常のビジネスプログラムではパフォーマンスは重要ですか? もしそうなら、パフォーマンスと最適化が重要なそのようなアプリケーションの場所の実世界の例を教えてください。

10
シンプルvs複雑な(ただしパフォーマンスは効率的)ソリューション-どちらを選択するか?
私は数年前からプログラミングをしていて、ジレンマに陥っていることがよくあります。 2つの解決策があります- 一つはシンプルなもの、すなわちシンプルなアプローチであり、理解と保守が容易です。冗長性、余分な作業(余分なIO、余分な処理)が含まれるため、最適なソリューションではありません。 しかし、他は複雑なアプローチを使用し、実装が難しく、多くのモジュール間の相互作用を伴うことが多く、パフォーマンス効率の高いソリューションです。 達成するのに難しいパフォーマンスSLAがなく、シンプルなソリューションでさえパフォーマンスSLAを満たすことができる場合、どのソリューションに取り組むべきですか?簡単な解決策については、仲間の開発者の間で軽disを感じています。 シンプルなソリューションでパフォーマンスSLAを満たすことができる場合、最も最適な複雑なソリューションを考え出すのは良い習慣ですか?

3
大きな時系列データを効率的に保存する方法は?
いくつかの非常に大量の時系列データを保存し、クエリできるようにする必要があります。 データのプロパティは次のとおりです。 シリーズ数:約12.000(1万) データポイントの数、グローバル:1か月あたり約500.000.000(5億) 混合値タイプ:データポイントの大部分は浮動小数点値で、残りは文字列です サンプリング期間:シリーズ間およびシリーズ内で可変 タイムスタンプ:ミリ秒精度 データ保持期間:数年、減衰またはダウンサンプリングなし データアーカイブはほぼリアルタイムで構築する必要がありますが、妥当な遅延(約1時間)が許容されます 必要に応じて過去のデータを再構築できますが、高コストです 時々ですが、ごくまれに、過去のデータを更新する必要があります 想定されるクエリのプロパティ: データに対するクエリのほとんどはタイムスタンプベースのクエリです。1日から数ヶ月/年までの範囲。90%以上が最新データのクエリになります その他の要件: ソリューションは、無料のビールのように無料である必要があり、できればオープンソース 私が最初に考えたのは、SQLデータベースの代わりにバックエンドを格納するHDF5ファイルで PyTables / Pandasを使用することでした。 質問: PyTables / Pandasが「最良の」ルートであると仮定すると、それぞれが特定の期間にわたる複数のHDFファイルにデータを分割するか、すべてが単一のファイルに入れられて巨大になるのが良いでしょうか? 固定形式または表形式を選択する必要がありますか?私にとっては、1か月に1つのHDFファイルを保持すれば、固定形式は問題なく見えます。このように、シリーズ全体がおそらくRAMに収まり、テーブル形式インデックスを必要とせずにメモリ内をスライスできるからです。私は正しいですか? それが最善のアプローチではない場合、このデータストアをどのように構成する必要がありますか、またはどのテクノロジーを検討する必要がありますか?大量の時系列データの保存に取り組むのは私が初めてではありませんが、この課題を解決する一般的なアプローチは何ですか? 私が検討した他のアプローチ: 配列データベース:配列の開始時間と終了時間、およびサンプリング周期を保存するだけでよく、配列自体の値とインデックス付けが簡単なので、一定のサンプリング周期を持つ時系列に最適です。しかし、シリーズ自体の可変サンプリング期間では、タイムスタンプと値の関係をより厳密に保つ必要があります。これは、私の見解では、配列DBMSにはあまり適していません。 タイムスタンプ、paramID、値を列として持つ標準SQLデータベースですが、その性質上、クエリに対して大量のディスクI / Oを要求します

4
再起動するたびに、ローカルの.NETサイトが初めてロードするのに時間がかかるのはなぜですか?[閉まっている]
.NETプラットフォームに基づいてサイトを開発しています。通常、これらのサイトをローカルIISに展開します。これにより、稼働する前にそれらをテストして機能を確認できます。ただし、Windowsを再起動するたびに、サイトの初回実行に時間がかかるようです。 私はJITについて知っていますが、この質問にも気づいていますが、私の質問には答えません。 JITは、ウィンドウを再起動するたびに発生しますか?w3wp.exeプロセスの作成に関連していますか?再起動後の最初のリクエストでサイトが非常に遅いのはなぜですか?
27 .net  asp.net  performance  iis  jit 

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