アバロン-FSN 1.0.0リリース:簡単にPythonコードをスピードアップ

アバロン-FSN

アバロン-FSNは、あなたのコードCythonのものとすることができるPythonのコンパイラ構築ツールであります

アバロン-FSNを使用するメリット

  • コードのCython:コードはPYDとしてWindowsでコンパイルされたコードは、ソースコードのLinuxの.soは、効果的な保護にコンパイルされます
  • パフォーマンスの向上:任意のコードレベルの最適化の場合に行う能力、Pythonコードの性能向上

インストール

アバロン-FSNインストールPIP

プロジェクトをコンパイルします

アバロン-FSN-ビルドにbuild_ext

コンパイルが完了した後、内の対応ファイル./build/lib*

使用後にコンパイルされたファイル

アバロン-FSN-リリース

このコマンドを実行するとしますbuildのみリリースのコンパイラ環境を使用して、ルートディレクトリにディレクトリにコンパイルされたファイルを置き換えます

##コンフィギュレーションファイルには、カスタムパラメータがあるとき、あなたはプロジェクトのルートディレクトリに新しいプロファイルを作成することができますavalon-fsn.json

{ 
  "remove_models":[]、
  "remove_files":[] 
}
設定名 設定の説明
remove_models コンパイルされたモジュールが関与していません
remove_files コンパイルされたファイルは参加しません

性能比較

インポート時間


:DEF()の実行
    時間_ = time.time()
    インポートsysを

    :DEF make_tree(深さ)
        なし、なし返さない:そうでない場合深さ
        = 1 -深さ
        戻りmake_tree(深さ)、make_tree(深さ)

    DEF check_tree(ノード):
        (左、右)=ノード
        残っていない場合:リターン1 
        リターン1 + check_tree(左)+ check_tree(右)

    min_depth = 4 
    MAX_DEPTH = MAX(min_depth + 2、17)
    stretch_depth = MAX_DEPTH + 1つの

    深さの印刷(「ストレッチツリー%D \トンチェック:」%の
          stretch_depth、check_tree(make_tree(stretch_depth)))

    long_lived_tree = make_tree(MAX_DEPTH)

    = 2 ** MAX_DEPTH反復

    範囲内の深さ(min_depth、stretch_depth、2)

        = 0をチェック
        :範囲(1、反復+ 1)内のiについて
            チェック+ = check_tree(make_tree(深さ))

        プリント( "%D \ T深さの木々 %D \トンチェック:」%(イテレーション、深さ)、チェック)
        の反復// = 4 

    プリント( "奥行きの長い住んでいた木を%D \トンチェック:" %の
          MAX_DEPTH、check_tree(long_lived_tree))

    TIME_END =時間.time()
    印刷( '時間コスト'、TIME_END -時間_、 'S')

ピュアPythonの

深さ18チェックのストレッチツリー:524287本の
深さ4チェック131072木:4063232本の
深6チェック32768木:4161536本の
深さ8チェック8192木:4186112本の
深さ10チェック2048木:4192256本の
深さ12チェック512木:4193792本の
128木深さの14のチェック:4194176 
深さの32本の木16チェック:4194272 
深さ17のチェックの長命ツリー:262143 
時間が11.279994249343872秒を要しました

のCython

深さ18チェックのストレッチツリー:524287本の
深さ4チェック131072木:4063232本の
深6チェック32768木:4161536本の
深さ8チェック8192木:4186112本の
深さ10チェックの2048木:4192256本の
深さ12チェック512木:4193792本の
128木深さの14のチェック:4194176 
深さの32本の木16チェック:4194272 
深さ17のチェックの長命ツリー:262143 
時間が1.9600331783294678秒を要しました

簡単なコンパイル後、直接のほぼ6倍のパフォーマンスを向上させます

おすすめ

転載: www.oschina.net/news/109514/avalon-fsn-1-0-0-released