strptime による日付解析の高速化
Python の datetime.datetime.strptime() を使用した「YYYY-MM-DD」形式の日付解析関数は、大量の日付を処理するときにパフォーマンスのボトルネックになる可能性があります。この記事では、日付解析プロセスを高速化するための効率的な代替方法について説明します。
標準の strptime() メソッドは、日付文字列を解釈するために包括的な形式仕様のセットに依存しています。この柔軟性は貴重ですが、計算オーバーヘッドが発生します。これを軽減するには、一貫した形式で日付を扱う場合、より合理化されたアプローチが推奨されます。
提案された解決策では、Python の文字列操作機能を使用して、日付文字列をその構成要素 (年、月、日) に手動で解析します。 。 strptime() の複雑な形式の仕様を回避することで、パフォーマンスを大幅に向上させることができます。
具体的な例として、strptime() と手動解析アプローチを比較したベンチマークでは、顕著な結果が得られます。
datetime.datetime.strptime(a, '%Y-%m-%d').date() # 8.87us datetime.date(*map(int, a.split('-'))) # 1.28us
手動解析メソッドは strptime() のパフォーマンスを 7 倍上回り、パフォーマンスの問題に効果的に対処します。
明示的な文字列スライスを利用することで、さらなる最適化が可能です。
datetime.date(int(a[:4]), int(a[5:7]), int(a[8:10])) # 1.06us
このメソッド各日付コンポーネントが文字列内の固定位置を占めるという事実を利用して、strptime() と比較して 8 倍という素晴らしい改善を達成します。
手動解析アプローチ、または明示的なスライスを使用したその拡張バージョンを採用すると、次のようになります。 「YYYY-MM-DD」形式の大量の日付を処理する速度が大幅に向上しました。
以上がPython で日付解析を高速化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。