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

プロファイリングは、プロファイラーと呼ばれる分析ツールを実行して、アプリケーションまたはシステムを測定するプロセスです。プロファイリングツールは、関数の呼び出し時間とカウント、メモリ使用量、CPU負荷、リソース使用量など、多くの側面に集中できます。


29
Pythonスクリプトのプロファイルをどのように作成できますか?
多くの場合、プロジェクトオイラーやその他のコーディングコンテストの実行時間は最大であるか、特定のソリューションの実行速度が自慢です。Pythonでは、時々アプローチがややこしい-つまり、タイミングコードをに追加する__main__。 Pythonプログラムの実行にかかる時間をプロファイルする良い方法は何ですか?

27
関数の実行にかかる時間を測定する方法
実行時間をミリ秒単位で取得する必要があります。 私が最初にこの質問をしたのは2008年でした。受け入れられた答えは、新しいDate()。getTime()を使用することでしたが、今では標準のperformance.now() API を使用する方が適切であることに同意できます。したがって、私はこれに対する受け入れられた回答を変更します。

3
関数でPythonコードがより速く実行されるのはなぜですか?
def main(): for i in xrange(10**8): pass main() このPythonのコードは、以下で実行されます(注:タイミングは、LinuxのBASHのtime関数で実行されます)。 real 0m1.841s user 0m1.828s sys 0m0.012s ただし、forループが関数内に配置されていない場合、 for i in xrange(10**8): pass その後、より長い時間実行されます。 real 0m4.543s user 0m4.524s sys 0m0.012s どうしてこれなの?

8
どのPythonメモリプロファイラーが推奨されますか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか? Stack Overflowのトピックとなるように質問を更新します。 6年前休業。 私のPythonアプリケーションのメモリ使用量を知りたいので、具体的には、どのコードブロック/部分またはオブジェクトがほとんどのメモリを消費しているのか知りたいです。Google検索では、商用のものがPython Memory Validator(Windowsのみ)であることを示しています。 そしてオープンソースのものはPySizerとHeapyです。 私は誰も試したことがないので、どれを検討するのが最善かを知りたいと思いました。 ほとんどの詳細を示します。 コードに変更を加える必要はありません。

30
優れた.NETプロファイラーとは何ですか?
ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 .netプログラムを使用するときにどのプロファイラーを使用しましたか。特にどのプロファイラーをお勧めしますか?
374 c#  .net  profiling  profiler 

11
コールバックでJavaScriptコードの実行時間を測定するにはどうすればよいですか?
node.jsインタープリターを使用して実行しているJavaScriptコードがあります。 for(var i = 1; i < LIMIT; i++) { var user = { id: i, name: "MongoUser [" + i + "]" }; db.users.save(user, function(err, saved) { if(err || !saved) { console.log("Error"); } else { console.log("Saved"); } }); } これらのデータベース挿入操作にかかる時間をどのように測定できますか?このコードの前後の日付値の差を計算することもできますが、コードの非同期性のため、これは正しくありません。

13
PHPスクリプトをプロファイルする最も簡単な方法
PHPスクリプトをプロファイリングする最も簡単な方法は何ですか? 私は、すべての関数呼び出しのダンプとそれらにかかった時間を示す何かに取り組むのが大好きですが、特定の関数の周りに何かを置いても大丈夫です。 マイクロタイム関数を試してみました: $then = microtime(); myFunc(); $now = microtime(); echo sprintf("Elapsed: %f", $now-$then); しかし、それは時々私に否定的な結果を与えます。加えて、それを私のコード全体にまき散らすことは非常に困難です。
289 php  profiling 

10
Rでの関数実行時間の測定
Rで関数の実行時間を測定する標準化された方法はありますか? 明らかにsystem.time、実行の前後を取り、それらの違いを取ることができますが、いくつかの標準化された方法または機能(ホイールを発明したくない)があるかどうかを知りたいです。 以前に以下のようなものを使用したことを覚えているようです: somesysfunction("myfunction(with,arguments)") > Start time : 2001-01-01 00:00:00 # output of somesysfunction > "Result" "of" "myfunction" # output of myfunction > End time : 2001-01-01 00:00:10 # output of somesysfunction > Total Execution time : 10 seconds # output of somesysfunction
282 r  time  profiling 

8
Pythonでメモリ使用量をプロファイルするにはどうすればよいですか?
私は最近アルゴリズムに興味を持ち、単純な実装を記述してさまざまな方法で最適化することにより、それらの探索を始めました。 ランタイムのプロファイリング用の標準のPythonモジュールについてはよく知っています(ほとんどの場合、IPythonのtimeitマジック関数で十分であることがわかっています)が、メモリ使用量にも興味があるので、これらのトレードオフも調査できます(たとえば、以前に計算された値のテーブルをキャッシュするコストと、必要に応じてそれらを再計算するコスト)。特定の関数のメモリ使用量をプロファイルするモジュールはありますか?
230 python  memory  profiling 


7
.hprofファイルを分析するにはどうすればよいですか?
次のフラグを使用して運用サーバーを実行しています:-XX:+ HeapDumpOnOutOfMemoryError 昨夜、サーバーでヒープエラーが発生したときにjava-38942.hprofファイルが生成されました。システムの開発者はフラグを知っていましたが、フラグから有用な情報を取得する方法がないことがわかりました。 何か案は?
227 java  profiling  heap 

8
コマンドラインのPHPスクリプトでXDebugプロファイラーをトリガーする方法
XDebugは、HTTP経由でスクリプトを呼び出すときにGETまたはPOSTパラメーター「XDEBUG_PROFILE」を渡すことでプロファイリングをアクティブ化できるようにする構成ディレクティブ「xdebug.profiler_enable_trigger」を提供します。これは、すべてのスクリプトのプロファイリングを望まないが、常にPHP構成を変更せずに、いくつかの特別な場合にのみ役立つ場合に便利です。 コマンドラインPHPプログラムで同じ動作を実現する方法はありますか?「XDEBUG_PROFILE」をコマンドライン引数として渡そうとしましたが、機能しませんでした。 一般的に、コマンドラインPHPのプロファイリングはうまく機能しますが、ブラウザーやHTTPサーバーと同じように呼び出しごとの柔軟性を持たせたいと思います。 助言がありますか?

7
gprofの代替案[終了]
現在のところ、この質問は、Q&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 他のどのプログラムがgprofと同じことをしますか?

19
スタックサンプリングを超えて:C ++プロファイラー
ハッカーの物語 日付は12/02/10です。クリスマスの前の日々がどんどんどろどろになっていて、私はWindowsプログラマーとして大部分の主要な障害にぶつかりました。私はAQTimeを使用しており、眠くて、光沢があり、非常に眠いので、VTuneをインストールしています。私はVS2008プロファイラーを使用しようとしましたが、積極的に罰せられているだけでなく、多くの場合無意味です。私はランダムな一時停止テクニックを使用しました。呼び出しツリーを調べました。関数のトレースを開始しました。しかし、悲しいことに、私が使用しているアプリは100万行を超えるコードであり、おそらく数百万行に相当するサードパーティのアプリが含まれています。 より良いツールが必要です。 私は他のトピックを読みました。 各トピックにリストされている各プロファイラーを試しました。単にこれらのジャンキーで高価なオプションよりも優れたもの、またはほとんど利益が得られない途方もない量の作業でなければなりません。問題をさらに複雑にするために、コードは大量にスレッド化され、いくつかのQtイベントループを実行します。それらのループの一部は非常に壊れやすく、タイミングの遅延が原因で重いインスツルメンテーションの下でクラッシュします。複数のイベントループを実行している理由を聞かないでください。誰にも言えません。 Windows環境でValgrindに沿ったオプションはありますか? 私がすでに試した長い壊れた道具よりも良いものはありますか? Qtと統合するために設計されたものはありますか、おそらくキュー内のイベントの便利な表示と一緒ですか? 私が試したツールの完全なリスト、およびイタリックで本当に役立つツール: AQTime:かなり良いです!深い再帰には問題がありますが、コールグラフはこれらの場合に正しく、混乱を解消するために使用できます。完璧なツールではありませんが、試してみる価値はあります。それはあなたのニーズに合うかもしれません、そしてそれは確かに私にとってほとんどの場合十分でした。 デバッグモードでのランダムな一時停止攻撃:十分な情報が不足しています。 優れたツールですが、完全なソリューションではありません。 Parallel Studios: 核となるオプション。目障りで、奇妙で、とてつもなく強力です。30日間の評価を上げて、適切かどうかを判断する必要があります。それもすごくかっこいいです。 AMD Codeanalyst: 素晴らしい、使いやすく、クラッシュしやすいですが、それは環境問題だと思います。無料なので試してみることをお勧めします。 ルーク・スタックウォーカー:小さなプロジェクトでうまく機能します。それを私たちのプロジェクトで機能させるのは少し困難です。しかし、いくつかの良い結果があり、それは間違いなく私の個人的な仕事のためのスリーピーを置き換えます。 PurifyPlus: Win-x64環境はサポートされません。最も目立つのはWindows 7です。それ以外は優れています。他の部門の多くの私の同僚はそれを誓います。 VS2008プロファイラー:関数トレースモードで必要な解像度で100ギグ以上の範囲の出力を生成します。プラス面では、確かな結果が得られます。 GProf:GCCが適度に効果的であることを要求します。 VTune:VTuneのW7は犯罪者の国境をサポートしています。そうでなければ優れている PIN:自分のツールを改造する必要があるので、これは最後の手段です。 Sleepy \ VerySleepy:小さいアプリに便利ですが、ここでは失敗します。 EasyProfiler:インストルメントする場所を示すために手動で挿入されたコードを少しでも気にしなければ問題ありません。 Valgrind:* nixのみですが、その環境では非常に優れています。 OProfile:Linuxのみ。 プロフィール:彼らは野生の馬を撃ちます。 私が試していない推奨ツール: XPerf: グローコード: Devpartner: 注: 現在のところIntel環境。VS2008、ブーストライブラリ。Qt 4+。そして、それらすべての惨めなhumdinger:trolltechによるQt / MFC統合。 現在:ほぼ2週間後、私の問題は解決したようです。リストにあるほぼすべてのものや、いくつかの個人的なトリックなど、さまざまなツールのおかげで、主要なボトルネックが見つかりました。ただし、新しいプロファイラと新しい技術のテスト、調査、試行を続けます。どうして?君たちが借りているからだ、君たちがロックしているから。タイムラインが少し遅くなりますが、私は新しいツールを試し続けることに非常に興奮しています。 概要 他の多くの問題の中で、最近、多くのコンポーネントが誤ったスレッドモデルに切り替わり、その下にあるコードが突然マルチスレッドでなくなったために深刻なハングアップが発生しました。私のNDAに違反しているのでこれ以上は言えませんが、これは何気ない検査や通常のコードレビューによってさえ発見されなかったと言えるでしょう。プロファイラー、コールグラフ、ランダムな一時停止を併用しなくても、美しい空の青い円弧に怒りを叫び続けます。ありがたいことに、私は今まで会ったことのない最高のハッカーと仕事をしており、素晴らしい「素晴らしいツールと素晴らしい人々でいっぱいの詩」にアクセスできます。 ジェントルフォーク、私はこれを非常に感謝しています。そして、私があなた一人一人に報奨金を報いるほどの担当者がいないことを後悔しているだけです。これは、SOでこれまでに得たものよりも良い答えを得るための重要な質問であるとまだ思います。 その結果、次の3週間は毎週、私ができる最大の報奨金を上げて、常識ではないと思う最高のツールを使って回答にそれを与えます。3週間後、私の罰を許していただければ、プロファイラーの明確なプロファイルが蓄積されていると思います。 テイクアウト プロファイラーを使用します。それらはリッチー、カーニハン、ベントレー、クヌースにとって十分なものです。私はあなたがあなたが誰だと思うかは気にしません。プロファイラーを使用します。あなたが持っているものが機能しない場合は、別のものを見つけてください。見つからない場合は、コーディングしてください。コードを作成できない場合や、ちょっとした電話が切れた場合、または行き詰まった場合は、ランダムな一時停止を使用してください。他のすべてが失敗した場合、プロファイラーを強打するためにいくつかの大学院生を雇います。 …

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