日々精進

新しく学んだことを書き留めていきます

pythonスクリプトのプロファイルを取ると「_generate_unique_filename」がボトルネックになっていた

_generate_unique_filenameって何だ・・・と思っていたら、これはattrパッケージの中で定義されている関数で、 クラス定義に@dataclassが付いていると呼ばれるっぽい。

pydoc.net

以下のようなクラス定義がforループの中にあって何度も呼ばれると_generate_unique_filenameも沢山呼ばれて重くなるっぽい。

@dataclass
class Match:
    start_pos: int
    length: int

クラス定義はメソッドの中でやらないようにしないとですね。。