「プログラムの速度を上げるための5つのコード最適化テクニック」

「プログラムの速度を最適化するための5つのコード最適化テクニック」

これらの言語に依存しないメソッドで、コードをより効率的かつプロフェッショナルにしましょう

Shubham Dhage氏による写真、Unsplashから

まずは動くようにしてから、速くするようにしましょう。これは多くのプロのプログラマーが共通の原則です。最初に、開発時間を短縮するために直感に従ってコードを書くかもしれません。その後、動作する実装ができたら、特定のケースで最も適したテクニックとデータ構造を慎重に選んで最適化することができます。

この記事では、ランタイムのコード改善に使用できる5つの言語に依存しないメソッドを紹介します。以下の概念は一般的であり、どのプログラミング言語にも適用できます。

ループ不変抽出

次のPythonコードを考えてみましょう。このコードは正規表現を使用して文字列のリストから一致するすべての文字列を見つけます:

import regex as re# 入力としていくつかの文字列を取得strings = get_strings()# マッチした文字列を格納するリストmatches = []# 入力文字列の反復処理for string in strings:      # 正規表現のコンパイル  rex = re.compile(r'[a-z]+')    # 文字列を正規表現と照合  matches = rex.findall(string)    # 最後にマッチした文字列をリストに追加  matches.extend(matches)

ループは、変動する入力に対して一連の命令を繰り返し適用します。これを考慮すると、上記のコードで変化しない操作を見つけることができますか?

`rex = re.compile(r’[a-z]+’)`という文は、定数の入力で動作します:正規表現の文字列です。ループの各繰り返しでは、この文はループの入力に関係なくまったく同じことを行います。もしもこの不変条件の文を抽出し、ループの前に一度実行すれば、コードは全体的な振る舞いは変わらず、いくつかのCPUサイクルを節約することができます。

import regex as re# 入力としていくつかの文字列を取得strings = get_strings()# マッチした文字列を格納するリストmatches = []# ループの前に正規表現を一度だけコンパイルrex = re.compile(r'[a-z]+')# 入力文字列の反復処理for string in strings:    # 文字列を正規表現と照合  matches = rex.findall(string)    # 最後にマッチした文字列をリストに追加  matches.extend(matches)

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more