You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
PyPyは同じソースを動かしてもPythonよりたいてい速いのですが、遅くなることもあります。その対処法がいくつかあるので紹介していきます。 今回はリストのソートです。こんなコードを動かしてみます。 from itertools import * import time def gen_S(): S = 290797 while True: S = S * S % 50515093 yield S def sort_long(N): a = list(islice(gen_S(), N)) t0 = time.clock() a.sort() print time.clock() - t0 N = 10 ** 7 sort_long(N) これを動かすと、Pythonで9秒、PyPyで25秒でした。 これがなぜ遅いかというと、リストに多倍長整数が混じっているからのようです。この要素は大きさ
色々Pythonを速くするための世の中に方法はありますが、本記事ではCythonやPyPyなどの高速化のTIPSに触れていきます。 この記事で触れること プロファイラーなどの計測関係 ビルドインモジュールなどの機能 Pythonのキャッシュ関係 Cython Numba PyPy(紹介だけ) その他一部のサードパーティーのライブラリ関係 この記事で触れないけどそのうち書くかもしれない内容 並列処理(multiprocessing)、並行処理(threading)、非同期処理(asyncio)、それらの組み合わせ(concurrent.futures)など Dask関係 PyPyの踏み込んだ検証内容など 話題のVaex 記事で使う環境 Windows10(ローカルのJupyter)とUbuntu(クラウド上のカーネル)で進めていきます。 言語はPython3.7.1(win)とPython3
κeenです。これは 言語実装 Advent Calendar 201713日目の記事です。 RPythonやPyPyについて勘違いしてる人向けに誤解を解こうかと。あんまコードは出てこないやつです。 いきなり話が逸れますが、PyPyとRPythonの話前に二村射影を知っておくと理解が深まるかもしれないので触れて起きます。 二村射影と部分評価 詳しくはWikipediaを見て下さい。 ここでは直感的な話をします。 第一: インタプリタとExecutable インタプリタは抽象的にはソースコードと入力データを受け取って出力データを出しています。 +---------+ +--------+ | in/data | | source | +---------+ +--------+ | | +-------------+ | interpreter | +-------------+ | +--
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く