Atcoderにおいて使用するSympyが異常なほどに遅い
sympyが異様に遅い
以下のコードだけでもpypy使用で4600msほどかかりました。
CPython(3.11.4)でも1100msほどです。
どうしてこんなに遅いんでしょうか。
import sympy
for i in range(1,100):
a=sympy.prime(i)
import sympy
だけでも1000msほどかかっています。
とても不思議です。
どなたか理由をご存知でしょうか
0
以下のコードだけでもpypy使用で4600msほどかかりました。
CPython(3.11.4)でも1100msほどです。
どうしてこんなに遅いんでしょうか。
import sympy
for i in range(1,100):
a=sympy.prime(i)
import sympy
だけでも1000msほどかかっています。
とても不思議です。
どなたか理由をご存知でしょうか
sympyは純Pythonのみで書かれてるのでCPython関係なく遅いはずですね.
1000msかかるぐらいの機能性はあると思います.
M1 Macで動かしたところ体感そんなにかかってないのもあって,ジャッジ環境のスレッド数とか関係してそうですね.
@totqkke
Questioner
そういう理由が考えられるんですねなるほど…
全然探しても理由が見つからなくて検討もつかなかったので少し納得出来ました!
sympyは素数計算だけのライブラリーではないのでロードに時間を要するのでしょう。
CPythonはコンパイルしているので、2回目が劇的に早いと思います。
Atcoderはコード、アルゴリズムの競技ですよね! 他人のふんどしのライブラリーを身に着け試合に出てはダメなのでは?
素数くらい自力で計算すべきでは?
p.s. 私はEASY開発委員会の精神にのっとり、ラクしたいので,import にprime
だけ、loadする呪文を唱えます。ズルします。
@totqkke
Questioner
承知の上です!
ただ使えるようになったって記事を見かけたのでどんなもんかと使ってみたらとても遅かったので気になって質問した次第です!