νμ΄λ²λ μμ±ν΄λλ κ²λ§μΌλ‘λ CPUλ₯Ό μ ν μ¬μ©νμ§ μμ΅λλ€.
λ¨, νμ΄λ²κ° μΌμμ μ§νλ€κ° λ€μ μ€νμ μ¬κ°νλ μμ μ CPU μκ°μ μ½κ° μλΉν©λλ€.
λλ΅ μμ§ APIκ° λ¦¬ν΄νλ FTvoidλ FT<TResult>λ₯Ό awaitμΌλ‘ λκΈ°ν λλ§λ€
μ‘°κΈμ© μ€λ²ν€λκ° λ°μνλ€κ³ μκ°νμλ©΄ λ©λλ€.
νλμ¨μ΄λ§λ€ μ νν κ°μ΄ λ€λ₯΄κ² μ§λ§, λλ΅μ κ³μ°μ μν μμΉλ λ€μκ³Ό κ°μ΅λλ€.
-
νμ΄λ² μμ+μ’ λ£ 1νλ§λ€ μ½ 10Β΅s(0.01ms)λ‘ μ΄λ¦Όμ‘μ μ μμ΅λλ€. μ¦, νμ΄λ²λ₯Ό λ§λ€κ³ λ²λ¦¬λ μΌμ΄ λλ¨ν μΈκΈ° λλ¬Έμ, μ€λ λλ₯Ό νλ§νλ―μ΄ νμ΄λ²λ₯Ό νλ§ν νμκ° μμ΅λλ€.
-
μ΄λ€ μ΄μ λ‘λ νμ΄λ²μ μΌμμ μ§+μ€νμ¬κ° 1νλ§λ€ μλΉλλ μ΅μ CPU μκ°μ μ½ 2Β΅s(0.002ms)λ‘ μ΄λ¦Όμ‘μ μ μμ΅λλ€. μ΄ κ°μ νμ΄λ² κ°μκ° λ§μμ§μλ‘ μ»€μ§λλ€.
-
Sleepμ ν΅ν΄ νμ΄λ²λ₯Ό μΌμμ μ§+μ€νμ¬κ°ν λλ§λ€ μλΉλλ CPU μκ°μ μ½ 4Β΅s(0.004ms)λ‘ μ΄λ¦Όμ‘μ μ μμ΅λλ€. μ΄ κ°μ νμ΄λ² κ°μκ° λ§μμ§μλ‘ μ»€μ§λλ€.
| Active fiber count | 1,000 | 10,000 | 100,000 |
|---|---|---|---|
| Overhead per EngineAPI.Fibering.Yield | 1.5Β΅s | 2Β΅s | 3Β΅s |
| Overhead per EngineAPI.Fibering.Sleep | 3Β΅s | 4Β΅s | 7Β΅s |
νλμ μλ² νλ‘μΈμ€μ μ€λΈμ νΈλ₯Ό 10,000κ° λ§λ λ€κ³ μΉ©μλ€. μ΄ μ€λΈμ νΈλ€λ§λ€ κ°κ° νμ΄λ²λ₯Ό λΆμ΄κ³ , Sleepμ μ¬μ©ν΄μ 50msλ§λ€ μ λ°μ΄νΈ νλ‘μμ λ₯Ό μ€ννκ² ν΄λ λ κΉμ?
κ³μ°ν΄ λ΄ μλ€.
μ€λΈμ νΈλ€λ§λ€ 1μ΄μ 20λ²μ Sleep νΈμΆμ΄ λ°μν κ²μ λλ€. Sleepμ ν΅ν΄ νμ΄λ²λ₯Ό μΌμμ μ§+μ€νμ¬κ°ν λλ§λ€ CPU μκ°μ μ½ 4Β΅s μλͺ¨νλ―λ‘, λ§€ 1μ΄λ§λ€ μ€λΈμ νΈλ€λ§λ€ Sleepμλ§ 80Β΅sλ₯Ό μλͺ¨ν©λλ€. 10,000κ°μ μ€λΈμ νΈκ° μμΌλ―λ‘, λ§€ 1μ΄λ§λ€ μ 체 μ€λΈμ νΈκ° Sleepμ μλͺ¨νλ μκ°μ λͺ¨λ ν©μΉλ©΄ 0.8μ΄μ λλ€..;;;;
λ©μΈ μ€λ λμ CPU μκ° μ€ 80%λ₯Ό νμ΄λ² μ νμλ§ μλͺ¨νκ² λ©λλ€. μ΄λ κ² λ§λ€λ©΄ μ λκ² μ£ .
νμ΄λ² νλλ§λ€ μ½ 2.2KBλ‘ μ΄λ¦Όμ‘μ μ μμ΅λλ€. μ¦ νμ΄λ²λ₯Ό 10,000κ° μμ±ν΄λλ©΄ λ©λͺ¨λ¦¬λ₯Ό 22MB μ¬μ©ν©λλ€. λ¬Όλ‘ νμ΄λ²μ μ€ν μ€νμ λ¬Όλ €μλ λ©λͺ¨λ¦¬κ° μμ κ²μ΄λ―λ‘ μ€μ λ©λͺ¨λ¦¬ μλͺ¨λμ λ 컀μ§μ§λ§, λλΆλΆμ κ²½μ°μ CPU μκ°μ λΉν΄μ λ©λͺ¨λ¦¬ μ¬μ©λμ 무μν μ μμ κ²μ λλ€.
- Lenovo YOGA 900S μμ μΈ‘μ νμ΅λλ€. 2015λ μ μΆμλ ν¬ μλ λ ΈνΈλΆ μ»΄ν¨ν°μ λλ€.
- CPU: Intel(R) Core(TM) m7-6Y75 CPU @ 1.20GHz
- OS: Windows 10 Home 64bit
μμΌλ‘ μ΅μ νλ₯Ό ν΅ν΄ Sleepμ΄λ νμ΄λ² μΌμμ μ§+μ€νμ¬κ°μ λλ CPU μκ°μ΄ μ€μ΄λ€ μ¬μ§κ° μμ΅λλ€.