問題タブ [timeit]
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.
python - Linuxでのtimeitモジュールとtimeモジュールと時間 - なぜ結果が大きく異なるのですか?
みんな!オブジェクトでディクショナリの作成パフォーマンスをテストしようとしていますが、奇妙な結果が得られます。Python で大量の辞書を作成する時間を測定するために、3 つの異なる方法を使用しました。最初の解決策は時間モジュールです。私はそれが正確ではないことを知っています。テストファイルは「node_time.py」
2 番目の方法は timeit モジュールです。より良い選択になるはずです。テストファイルは「node_timeit.py」
3 つ目の方法は、Linux でシステム コマンド「time」を使用する方法です。テストファイルは「node_sys.py」
最後に、結果はまったく異なります。
時間モジュール法 (壁時計の時間を測定) の結果は、現在の値よりも大きくなるはずです。しかし、Linux コマンド「time」を使用すると、ユーザー CPU 時間とシステム CPU 時間の合計は 8.060 秒にもなります。正しい結果はどれか。そして、なぜ彼らはそんなに違うのですか?コメントありがとうございます!
python - cython 関数での timeit の使用
次の構文を使用して、timeit を使用して cython でコンパイルされた関数の時間を計ろうとしています。
しかし、「名前offset_backをインポートできません」というメッセージが表示され続けます。
関数が正常に呼び出された場合 print(offset_back(10000,1000,1000))
、cython コードで timeit を使用することは可能ですか、それとも cProfile を使用する必要がありますか?
python - timeit モジュールのセットアップを使用したプロファイリングが失敗する
ここでは、numstring モジュールから 4 つの関数をプロファイルしようとしています。
コード内
仕事を終わらせるためにスタメント変数を読み込もうとしていますが、失敗する方法もあります。誰でも助けてくれますか...よろしくお願いします
python - 24 ビット バイナリ データの 16 ビット numpy 配列への読み込みを高速化
次のコードを使用して、24 ビット バイナリdata
を 16 ビットnumpy
配列にロードします。
速度効率を改善することは可能だと思いますが、どのように?
python - Python: 複数の割り当てと個別の割り当ての速度
私は自分のコードからもう少しパフォーマンスを絞り出そうとしています。最近、この Python wiki ページを閲覧しているときに、次の主張を見つけました。
複数の割り当ては、個別の割り当てよりも遅くなります。たとえば、「x,y=a,b」は「x=a; y=b」よりも遅くなります。
好奇心が強い、私はそれをテストしました(Python 2.7で):
順序を変えて何度か繰り返しましたが、複数の割り当てスニペットは、個別の割り当てよりも一貫して少なくとも 30% 優れたパフォーマンスを発揮しました。明らかに、変数の割り当てを含むコードの部分が重大なボトルネックの原因になることはありませんが、それでも私の好奇心は刺激されます。ドキュメントが別の方法で提案しているのに、なぜ複数の代入は個々の代入より明らかに速いのですか?
編集:
2 つ以上の変数への代入をテストしたところ、次の結果が得られました。
傾向はほぼ一貫しているようです。誰でも再現できますか?
(CPU: インテル Core i7 @ 2.20GHz)
python - Python の timeit.timeit() 関数の分解
Python で timeit.timeit() 関数のティアダウンを指定する方法はありますか? 「Statement」と「Setup」に引数があることは知っていますが、ティアダウンを実行する良い方法が見つかりませんでした。
「ステートメント」に分解コードを含めると、時間を計ろうとしているコード スニペットのタイミングがずれます。timeit モジュールの繰り返し機能を使用できるように、ハードウェア リソースを解放するためにティアダウンが必要です。
python - `timeit` を使用して 60MB の文字列を含むリストに参加するテストを行うと、MemoryError が発生します
私のテスト追加は、60MB の文字列と 5 バイトの文字列を含むリストを作成します。このリストは次に結合されjoin()
ます:
この例外を返します:
実行のたびに変数が削除され、ガベージ コレクションが行われると想定しているのに、なぜメモリ不足になるのでしょうか? 8 回の実行でテストを実行しても問題ありませんが、それを超えるとこのエラーが発生します。