Python プログラムのパフォーマンスを向上させる 7 つの習慣
1. ローカル変数を使用する
メンテナンスを容易にし、パフォーマンスを向上させ、メモリを節約するために、グローバル変数の代わりにローカル変数を使用するようにしてください。
ローカル変数を使用して、ls = os.linesep などのモジュール名前空間内の変数を置き換えます。プログラムのパフォーマンスを向上させ、ローカル変数の検索を高速化できる一方で、短い識別子を使用して長いモジュール変数を置き換えて可読性を向上させることができます。
2. 関数呼び出しの数を減らす
オブジェクト タイプを判断するときは、 isinstance() を使用し、続いてオブジェクト タイプ ID (id())、オブジェクト値 ( type()) 比較は最悪です。
#判断变量num是否为整数类型 type(num) == type(0) #调用三次函数 type(num) is type(0) #身份比较 isinstance(num,(int)) #调用一次函数
繰り返し動作を避けるため、繰り返し動作の内容をパラメータとしてループ条件に入れないでください。
#每次循环都需要重新执行len(a) while i < len(a): statement #len(a)仅执行一次 m = len(a) while i < m: statement
モジュール X で関数またはオブジェクト Y を使用する必要がある場合は、import X; X.Y の代わりに from X import Y を直接使用する必要があります。このようにして、Y を使用するときに 1 つのクエリを減らすことができます (インタプリタは、最初に X モジュールを見つけてから、X モジュールの辞書で Y を検索する必要がありません)。
3. 条件検索の代わりにマッピングを使用する
マッピング (dict など) の検索速度は、条件文 (if など) の検索速度よりもはるかに高速です。 )。 Python には select-case ステートメントもありません。
#if查找 if a == 1: b = 10 elif a == 2: b = 20 ... #dict查找,性能更优 d = {1:10,2:20,...} b = d[a]
4. シーケンス要素の直接反復
シーケンス (str、リスト、タプルなど) の場合、シーケンス要素の直接反復は、インデックス付けより高速です。反復された要素。
a = [1,2,3] #迭代元素 for item in a: print(item) #迭代索引 for i in range(len(a)): print(a[i])
5. ジェネレーター式を使用してリスト内包表記を置き換えます
リスト内包表記 (リスト内包表記) はリスト全体を生成するため、大規模な反復に悪影響を及ぼします。データ量。
ジェネレータ式はそうではなく、実際にはリストを作成しませんが、必要なときに値を生成するジェネレータ (遅延計算) を返します。これはメモリに優しいです。
#计算文件f的非空字符个数 #生成器表达式 l = sum([len(word) for line in f for word in line.split()]) #列表解析 l = sum(len(word) for line in f for word in line.split())
6. 最初にコンパイルしてから呼び出します
eval() 関数と exec() 関数を使用してコードを実行する場合は、コード オブジェクト (事前にcompile()関数を渡しておく(バイトコードにコンパイルされる)ことで、strを直接呼び出す代わりに、コンパイル処理を何度も繰り返すことを避け、プログラムのパフォーマンスを向上させることができます。
正規表現パターン マッチングも同様ですが、比較と一致を実行する前に、(re.complie() 関数を使用して) 正規表現パターンを正規表現オブジェクトにコンパイルすることも最適です。
7. モジュール プログラミングの習慣
モジュール内の最上位の Python ステートメント (インデントのないコード) は、モジュールがインポートされるときに (実際に実行する必要があるかどうかに関係なく) 実行されます。 。したがって、メインプログラムに関連する関数コードも含め、モジュールのすべての関数コードを関数に配置するようにしてください。これらの関数コードは main() 関数に配置することもでき、メインプログラム自体が main() 関数を呼び出します。 。
モジュールの main() 関数にテスト コードを記述できます。メインプログラムで name の値を確認し、'main' (モジュールが直接実行されていることを示す) の場合は main() 関数を呼び出してテストを実行し、モジュール名 (モジュールが直接実行されていることを示す) の場合はテストを実行します。呼び出されている場合)、テストは実行されません。
以上がPython プログラムのパフォーマンスを向上させる 7 つの習慣の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

Pytorch GPUアクセラレーションを有効にすることで、CentOSシステムでは、PytorchのCUDA、CUDNN、およびGPUバージョンのインストールが必要です。次の手順では、プロセスをガイドします。CUDAおよびCUDNNのインストールでは、CUDAバージョンの互換性が決定されます。NVIDIA-SMIコマンドを使用して、NVIDIAグラフィックスカードでサポートされているCUDAバージョンを表示します。たとえば、MX450グラフィックカードはCUDA11.1以上をサポートする場合があります。 cudatoolkitのダウンロードとインストール:nvidiacudatoolkitの公式Webサイトにアクセスし、グラフィックカードでサポートされている最高のCUDAバージョンに従って、対応するバージョンをダウンロードしてインストールします。 cudnnライブラリをインストールする:

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

MINIOオブジェクトストレージ:CENTOSシステムの下での高性能展開Minioは、Amazons3と互換性のあるGO言語に基づいて開発された高性能の分散オブジェクトストレージシステムです。 Java、Python、JavaScript、Goなど、さまざまなクライアント言語をサポートしています。この記事では、CentosシステムへのMinioのインストールと互換性を簡単に紹介します。 Centosバージョンの互換性Minioは、Centos7.9を含むがこれらに限定されない複数のCentosバージョンで検証されています。

Pytorchの分散トレーニングでは、Centosシステムでトレーニングには次の手順が必要です。Pytorchのインストール:PythonとPipがCentosシステムにインストールされていることです。 CUDAバージョンに応じて、Pytorchの公式Webサイトから適切なインストールコマンドを入手してください。 CPUのみのトレーニングには、次のコマンドを使用できます。PipinstalltorchtorchtorchvisionTorchaudioGPUサポートが必要な場合は、CUDAとCUDNNの対応するバージョンがインストールされ、インストールに対応するPytorchバージョンを使用してください。分散環境構成:分散トレーニングには、通常、複数のマシンまたは単一マシンの複数GPUが必要です。場所

PytorchをCentosシステムにインストールする場合、適切なバージョンを慎重に選択し、次の重要な要因を検討する必要があります。1。システム環境互換性:オペレーティングシステム:Centos7以上を使用することをお勧めします。 Cuda and Cudnn:PytorchバージョンとCudaバージョンは密接に関連しています。たとえば、pytorch1.9.0にはcuda11.1が必要ですが、pytorch2.0.1にはcuda11.3が必要です。 CUDNNバージョンは、CUDAバージョンとも一致する必要があります。 Pytorchバージョンを選択する前に、互換性のあるCUDAおよびCUDNNバージョンがインストールされていることを確認してください。 Pythonバージョン:Pytorch公式支店

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。
