ホームページ  >  記事  >  バックエンド開発  >  なぜPythonは非効率なのでしょうか?

なぜPythonは非効率なのでしょうか?

(*-*)浩
(*-*)浩オリジナル
2019-05-30 13:05:584155ブラウズ

Python はエレガントなプログラミング言語です。今日、人工知能、クラウド コンピューティング、ビッグデータの急速な発展に伴い、Python は国内の Alibaba、Sohu、Zhihu、Tencent、NetEase、Tudou など各界から注目を集めています。 , 新浪から海外に至るまで、Google、Dropbox、Facebook、Redhat、Uber などはさまざまなタスクを実行するために Python を大規模に使用しています。

なぜPythonは非効率なのでしょうか?

Python は、確かに多くの利点があるため、ますます広く使用され、非常に人気が高まっていますが、Python には大きな欠点もあります。C 言語と比較すると、

Pythonは動作効率が悪いのですが、その原因は何でしょうか?

1. Python は動的言語です

動的言語は、新しい関数やオブジェクトなど、実行時にその構造を変更できる言語の一種です。 、コードの導入、既存の機能の削除やその他の構造の変更などが可能です。このタイプの言語はより活発ですが、実行時間の不確実性が実行効率にも影響することは避けられません。

2. Python は解釈および実行される言語です。

C コンパイル言語で書かれたプログラムと比較して、Python は解釈および実行される言語であり、その実行プロセスはPython 実行ファイル プログラム。Python インタープリターはソース コードをバイトコードに変換し、Python インタープリターはこれらのバイトコードを実行します。実行するたびにバイトコードに変換する必要があり、ハードウェアで実行できるようになる前に、仮想マシンがバイトコードを機械語に変換する必要があります。コンパイルされた言語と比較して、プロセスはより複雑であり、パフォーマンスに確実に影響します。 。 影響。

3. Python のすべてはオブジェクトです

Python はオブジェクト指向プログラミング言語であり、数値や文字列などすべてがオブジェクトであるという設計コンセプトです。タプル、リスト、辞書、関数、メソッド、クラス、モジュールなどはコードも含めてすべてオブジェクトです。各オブジェクトは参照カウントを維持する必要があるため、余分な作業が追加され、パフォーマンスに影響します。

4. Python GIL

GIL は Python で最も批判されている点です。GIL があるため、Python のマルチスレッドは真の意味で同時実行できません。たとえシングル スレッドであっても, GIL また、Python は 100 個のオペコードを実行するたびにスレッドを切り替えようとするため、Python の動作効率に影響を与えるため、パフォーマンスにも大きな影響を及ぼします。

5. ガベージ コレクション

Python では、マーク付きの世代別ガベージ コレクション戦略が採用されており、ガベージ コレクションが実行されるたびに、実行中のプログラムが中断され、一時停止カードと呼ばれ、作業効率に影響を与えます。

以上がなぜPythonは非効率なのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。