問題タブ [overhead]
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++ - 潜在的に長いループと内部での変数の宣言
私は最近、DNA 鎖の 2 つのシーケンス (長くなる可能性があります) 間の類似性 (変更された編集距離) を計算する動的プログラムを作成しました。
私のコードは次のようなものです(割り当てであるため、実際のコードではありません):
上記のコードは、約 2400 行のファイルで完了するのに約 40 分かかります。p,d と代入のペアをネストされた for ループの外に移動し、まったく同じファイルを実行すると、約 1 分で完了します。
パフォーマンスはほぼ同じであると他のスレッドで読みました。また、-O2 でコンパイルしました。
上記のコードが非常に遅いのはなぜですか?
python - 環境をロードして Python スクリプトを実行するには、どのくらいの費用がかかりますか?
1 日に数千回実行されるバックグラウンド python スクリプトがあります。私は単にそれを実行していpython foo.py
ます。スクリプト自体がいくつかのインポート (解析ライブラリと sqlalchemy) を実行し、データベース接続を確立して解析を行い、データを db に保存します。
スクリプトが実行されるたびに Python 環境をロードするために多くのオーバーヘッドが追加されるのではないかと思っています。
スクリプトが一度開始され、何かを実行する必要があるかどうかを確認するためにポーリング ループが発生するようにすることもできますが、これを実行する価値があることを明確にしたいと思います。
入力はありますか?
c++ - C++static_castランタイムオーバーヘッド
以下のコードを参照してください。
a)この場合(単純な継承、仮想メンバーなし)、B :: df()の静的キャストには(何でも)オーバーヘッドがありますか?私は同様の質問に対するいくつかの矛盾する答えを見つけました、それが私が尋ねている理由です...
const M1 * func
b)キャストを避けるために、Aでプライベートにし、Bに新しいプライベートフィールドを導入することを考えていconst M2 * func
ましたが、それは物事を複雑にし、スマートポインターの使用をより困難にします。キャストを避けるためのより良い方法がわかりますか?
c# - データのない型のオーバーヘッドはどのくらいですか?
マイクロ最適化でフレーム戦争を開始したくはありませんが、何かに興味があります。
組み込みデータを持たない型のインスタンスを作成する場合のメモリとパフォーマンスのオーバーヘッドはどれくらいですか?
たとえば、実装する単純なクラスにはIComparer<T>
、メソッドのみが含まれ、Compare
プロパティやフィールドは含まれない場合があります。
私が見た典型的なコード例はnew FooComparer()
、これらのいずれかが必要な場合はいつでも を呼び出すだけです。
ここでのインスタンス化コストが非常に高いとはまったく想像できませんが、それが実際に何であるかを知りたいと思っています。そして、たとえば、必要な場所で 1 つの比較インスタンスを使用できるように、比較子への型の辞書を保持する静的ファクトリ クラスとどのように比較しますか。
c++ - インラインで高速化します void a(string b) { cout << b; }
割り当ての場合、出力を処理するための 2 つのメソッドを作成する必要があります。1 つは文字列の出力用で、もう 1 つは整数用です。
基本的に、別のメソッドを呼び出す 2 つのメソッドがあります。
インラインは、さらに別の関数を呼び出さないことでオーバーヘッドを節約することでスピードアップしますか、それとも cout の名前空間などに関してさらに作成しますか?
javascript - クラスとオブジェクトに関連するJavascriptのオーバーヘッド
そのクラスの新しいオブジェクトの代わりに新しいクラスを作成することに関連するオーバーヘッドは小さいのか大きいのか疑問に思いました。私は道場を使用していますが、純粋なJSの例を示します。起動時に一度10〜100個のオブジェクトを作成しますが、これは深刻な問題ではないと思いますが、すべての拠点をカバーしたいと思います。
ケース1:Javascriptオブジェクト
対ケース2:Javascriptクラス
編集:人々は私がなぜこのアプローチを取るのか知りたがっています。私は、ユーザーが必要に応じてオブジェクトを作成および/またはロードするモジュラープログラムを実装しており、1つのPerson / Shape / Text ...クラスを持ち、50,000,000の引数(名前、年齢、性別、ラベル、フォント、 x、y、w、h ...)すべての値を含む単一のクラスを作成したいと思います。これにより、ユーザーがブラウザー内からコードを表示および変更できるようにするため、コードの編集も簡単になります。私はOOPに不慣れではなく、これが標準のプログラミング手順からの逸脱であることを認識しているので、自分が何をしているのかを知っていることを少し信じてください=)
c++ - C++ 例外のオーバーヘッド
組み込みプラットフォームの開発者はC++ exceptions
、SDKs
なぜ .
たとえばBada SDK
、例外の使用法について次の回避策を提案していますが、これは非常に見苦しく見えます。
この動作の理由は何ですか?
私の知る限り、ARM
コンパイラは完全にサポートC++ exceptions
しており、これは実際には問題ではありません。ほかに何か?ARM
プラットフォームでの例外の使用と巻き戻しのオーバーヘッドは、そのような回避策を作成するのに多くの時間を費やすほど大きなものですか?
多分私が気づいていない何か他のものはありますか?
ありがとうございました。
c++ - Intel TBB 並列化のオーバーヘッド
Intel Threading Building Blocks (TBB)parallel_for
のオーバーヘッドが大きいのはなぜですか? セクション 3.2.2 によると、その約 0.5 ミリ秒の自動チャンク。Tutorial.pdf
これはチュートリアルからの特技です:
注意: 通常、ループのパフォーマンスを向上させるには、parallel_for に少なくとも 100 万クロック サイクルかかる必要があります。たとえば、2 GHz プロセッサで少なくとも 500 マイクロ秒かかるループは、parallel_for の恩恵を受ける可能性があります。
私がこれまでに読んだことによると、TBB はスレッドプール (ワーカー スレッドのプール) パターンを内部で使用し、ワーカー スレッドを最初に 1 回だけ生成することで、このような悪いオーバーヘッドを防ぎます (数百マイクロ秒のコストがかかります)。
では、何が時間を取っているのでしょうか。ミューテックスを使ったデータ同期ってそんなに遅くないですか?また、TBB はロックフリーのデータ構造を同期に利用していませんか?
visual-studio - Windowsgccコンパイル済みとVisualStudioコンパイル済みのパフォーマンス比較
私は現在、gccで使用するためのmakefilesで提供されるオープンソース最適化ライブラリ(ネイティブC ++)をコンパイルしています。私はWindowsユーザーなので、これをコンパイルする2つのオプション、MinGW / Cygwinでgccを使用する方法、またはVisualStudioプロジェクトを手動でビルドしてソースをコンパイルする方法に興味があります。
1)MinGW / Cygwin + gccを使用してコンパイルした場合、結果の.lib(静的ライブラリ)にはMinGW / Cygwinのライブラリが必要ですか?つまり、コンパイルした.libをMinGW /CygwinがないWindowsPCに配布できますか?それでも実行できますか?
2)コンパイラ自体のパフォーマンスの違い以外に、MinGW / Cygwinとgccを使用してコンパイルするときに関連するオーバーヘッドがありますか?エミュレーションレイヤーはライブラリにコンパイルされますか、またはgccはネイティブWindowsライブラリを構築しますか?
3)速度がライブラリの私の主な目的である場合、使用するのに最適な方法はどれですか?これは非常にオープンエンドであり、自分のベンチマークを実行するのが最善かもしれませんが、誰かがここで経験を積んでいれば、これは素晴らしいことです。