νμ΄μ¬ GILμ΄λ?
νμ΄μ¬μ λ€λ₯Έ μΈμ΄ (C++ or Java)μ λ©ν°μ°λ λμ λ€λ₯Έ μ μ΄ μλ€.
λ©ν° μ°λ λκ° λ©ν° μ°λ λκ° μλλ€
λ¬΄μ¨ λ§μ΄λ νλ©΄ λμμ±μ λ§μ‘±νμ§ λͺ»νλ€.
μμ κ·Έλ¦Όμ²λΌ μ°λ λλ₯Ό 3κ°λ‘ λλμ΄ μ€ννλλΌλ GILλ₯Ό κ°μ§ μ°λ λλ§ μ€νλκ³ , λλ¨Έμ§ μ°λ λλ GIL release λκΈ°λ₯Ό κΈ°λ€λ¦°λ€.
λμμ±μ κ°κΈ° μν΄μλ λ©ν° νλ‘μΈμ±μ νμ©ν΄μΌ νλ€.
λ€λ§ λ©ν° νλ‘μΈμ€λ λ©ν° μ°λ λμ λΉν΄ μ€λ²ν€λλ λ°μ΄ν° κ΅ν μ΄λ €μ λ±μ λ¨μ μ΄ μλ€.
λ©ν° μ°λ λμ μ¬μ©
μ¬μ€μ CPU μ½μ΄λ μ°λ λλ₯Ό λͺ»κ΅΄λ¦¬λλ°, λ©ν°μ°λ λλ₯Ό μΈμ μ¬μ©νλ
I/O Boundλ₯Ό ν΄κ²°ν λ μ¬μ©νλ€.
DB, API, UI λ±μ μμ λ€μ CPU μμ μλμ λΉν΄ νμ ν λ리기μ CPU μ μ₯μμλ I/O μμλ€λ‘ μΈν΄ μμ μμ€μ μΌμΌν¬ λκ° μλ€.
κ·Έλ΄ λ, λ©ν° μ°λ λλ₯Ό λμ νλ©΄ I/O λ°μ΄λλ₯Ό ν΄κ²°ν μ μλ€.
μ΄κ±Έ νμ©νλκ² λΉλκΈ°μ μ²λ¦¬μ΄λ€. (FastAPIκ° λΉ λ₯΄λ€κ³ νλ μ΄μ μ€ νλ)
λ¬Όλ‘ CPU λ°μ΄λλ λ©ν° νλ‘μΈμ±μ μ΄μ©ν΄μΌ νλ€.
GIL ν΄μ
PC μμ₯μ μ±κΈ μ½μ΄μ μ±λ₯μ μ¬λ¦¬λ κ²λ³΄λ€ μ½μ΄ μ«μλ₯Ό λ리λ λ°©ν₯μ΄ μ±λ₯ν₯μ λ ν¬κ³ μ΅κ·Ό CPU λ€λ 16, 24, 40 μ½μ΄ κΉμ§λ μκΈ°μ νμ΄μ¬μ΄ CPU μ λλ‘ νμ©νμ§ λͺ»νλ κ²μ νμ΄μ¬ μ¬λ¨λ μκ³ μκ³ , GILμ μμ κΈ° μν μλλ₯Ό ν΄μ€κ³ μλ€.
[Python] GILμ ν΄μ ν΄λ³΄μ
λλμ΄ Python 3.13.0 μμ GILμ΄ ν΄μ λμλ€. Python 3.13.0 μΌλ‘ λ©ν°μ°λ λ© μ±λ₯ ν μ€νΈλ₯Ό ν΄λ³΄λ € νμ§λ§, μ€ν¨νλ€.μ°Ύμ보λ, μΌλ° CPython 3.13 μμ μμ§ μλκ³ , GILμ ν΄μ νμ¬ λΉλ λ CPythonμ μ¬μ©
du-sungchan-24k.tistory.com
'π Python' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Python] GILμ ν΄μ ν΄λ³΄μ (0) | 2024.10.11 |
---|---|
[Python] νμ΄μ¬ κ°λ°μ λ©΄μ μ§λ¬Έ (0) | 2024.05.26 |
[Python] Pandas, Numpy μ±λ₯ ν₯μ (feat.Pandas vs Numpy) (0) | 2024.05.06 |
Python 3.11 λ¬λΌμ§ μ - μ λ°μ΄νΈ (0) | 2024.01.15 |
μλ£κ΅¬μ‘° - List, Dict, Set, Tuple (0) | 2022.10.27 |