「Python」の実行速度向上を目指した「GIL」の廃止が、一部のエンジニアの間で議論を呼んでいる。なぜPythonへの悪影響が懸念されているのか。
プログラミング言語「Python」のコミュニティーは、CPython(Pythonの標準実装)の処理速度を向上させ、複数のCPUコアをまたがるスレッド処理を実現させるため、新機能や仕様に関する提案文書「PEP 703」を承認した。PEP 703は、一部のエンジニアの間で悪名高い「GIL」(Global Interpreter Lock)の廃止を掲げている。GILは、CPythonがメモリ管理やデータ構造の安全性を確保するために採用している仕組みだ。
ただしGILの廃止は、Pythonユーザーに深刻な問題をもたらす可能性がある。GILの廃止に疑問を呈するPythonエンジニアは、どのような懸念を抱いているのか。
GILの廃止は、幾つかの深刻な問題をもたらす可能性がある。その影響と理由をまとめた。1つ目は次の通り。
現状の仕様だと、原則としてPythonプログラムは一度に1つのスレッド(プログラムの実行単位)のみがCPUを利用できる「シングルスレッド」処理になる。この場合、コンパイラ(ソースコードを機械語に変換するプログラム)設計者は、複数のプロセスが互いの処理終了を待って処理が進まなくなる「デッドロック」や、データの競合を懸念する必要がない。
一方で、一度に複数のスレッドがCPUを利用できる「マルチスレッド」処理を許容し、マルチコアCPU搭載システムで実行することを想定するプログラミング言語は、データやアクセスに対するロックを導入しなければならない。CPUがこうしたロックを処理するには、それなりに時間がかかる。GILを廃止したPythonはロックを導入することになるため、シングルスレッドアプリケーションの実行速度が低下する恐れがある。
PEP 703自体もこの問題を認めており、提案文書には次のように記されている。「本PEPで提案する変更によって、GILを無効にしたPythonでは、実行時のオーバーヘッド(処理の負荷)が大きくなる。つまりシングルスレッドアプリケーションのパフォーマンスが低下する」
次回は、2~4つ目の理由を紹介する。
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.
DXの推進が叫ばれる中、その中核を担うソフトウェア開発の現場では、IT人材不足をはじめとする5つの課題が顕在化している。それらを解消し、ソフトウェアの品質を高める方法として注目されるのが、ソフトウェアテストの外注だ。
ソフトウェア開発ではテストを、開発エンジニアが自ら担当するシーンが散見される。ただ、開発者自身が自ら開発したものをテストすると、観点に偏りが生じてしまい検証品質が下がる。この問題の解決には第三者によるテストが重要だ。
ソフトウェアテストをアウトソースするに当たってはベンダー選びが重要だが、自社に合うテストベンダーをどう選べばよいか分からない、という声もよく聞かれる。そこで、失敗しないベンダー選定の基準を、チェックシート形式で解説する。
生産性向上が重要視される今、エンジニア組織の開発生産性を高めるために、どのような取り組みを進めればよいのか分からないという声も多い。そこで社内報CMSの開発・運用を手掛けるourlyなど、3社の事例からそのヒントを紹介する。
近年の製造業ではスマートファクトリー化やDXが進み、データ活用の重要性が高まっているが、人材・予算の限られた中堅・中小企業では全社的な展開は難しい。このような問題を解消できる専用ツールについて、導入事例を交えて紹介する。
いまさら聞けない「仮想デスクトップ」と「VDI」の違いとは
遠隔のクライアント端末から、サーバにあるデスクトップ環境を利用できる仕組みである仮想デスクトップ(仮想PC画面)は便利だが、仕組みが複雑だ。仮想デスクトップの仕組みを基礎から確認しよう。
「サイト内検索」&「ライブチャット」売れ筋TOP5(2025年5月)
今週は、サイト内検索ツールとライブチャットの国内売れ筋TOP5をそれぞれ紹介します。
「ECプラットフォーム」売れ筋TOP10(2025年5月)
今週は、ECプラットフォーム製品(ECサイト構築ツール)の国内売れ筋TOP10を紹介します。
「パーソナライゼーション」&「A/Bテスト」ツール売れ筋TOP5(2025年5月)
今週は、パーソナライゼーション製品と「A/Bテスト」ツールの国内売れ筋各TOP5を紹介し...