RAIL - ChoDragon9/posts GitHub Wiki
RAILμ μΉ μ±μ μ£Όμ μμ μΈ Response, Animation, Idle, Loadμ μ½μλ€. μ¬μ©μμ κ²½νμ μ£Όμ μμ μΌλ‘ λλκ³ κ°κ°μ μ±λ₯ λͺ©νλ₯Ό μ μνλ λ° λμμ΄ λλ€. μ±λ₯ λͺ©νλ μ¬μ©μκ° μ§μ°μ μΈμνλ λ°©μμ λν 컨ν μ€νΈ λ° UX μ°κ΅¬λ₯Ό κΈ°λ°μΌλ‘ μ μλμλ€.
μ΄ κΈ°κ° λ΄μ μλ΅νλ©΄ μ λλ©μ΄μ μ΄ λΆλλ½λ€κ³ μΈμνλ€. μλνλ©΄, μ¬μ©μλ λͺ¨μ μΆμ μ΄ λ₯μνκΈ° λλ¬Έμ΄λ€. λΈλΌμ°μ κ° μ νλ μμ νλ©΄μ 그리λ λ° κ±Έλ¦¬λ μκ°μ ν¬ν¨νλ©΄, νλ μλΉ 16msμ΄λ€.
μ΄ κΈ°κ° λ΄μ μλ΅νλ©΄ μ¦κ°μ μΈ λ°μμΌλ‘ λλλ€. μ΄ κΈ°κ°μ λμ΄κ°λ©΄ νλκ³Ό μλ΅μ΄ λμ΄μ‘λ€κ³ λλλ€.
μ΄ κΈ°κ° λ΄μμλ μμ°μ€λ½κ³ μ§μμ μΈ μμ μ§νμ μΌλΆλ‘ λλλ€. λλΆλΆ μΉ νμ΄μ§ λ‘λλ νμ΄μ§ λ³κ²½ μμ μ λνλΈλ€.
1000msλ₯Ό λμΌλ©΄ μ¬μ©μλ μν μ€μΈ μμ μ μ§μ€νμ§ λͺ»νλ€.
10000msλ₯Ό λμΌλ©΄ μ¬μ©μλ μ€λ§νκ³ μμ μ ν¬κΈ°ν κ°λ₯μ±μ΄ ν¬λ€. λμ€μ λ€μ λ°©λ¬Ένμ§ μμ μ μλ€.
μ¬μ©μλ λ³ΈμΈμ λ€νΈμν¬ μνμ νλμ¨μ΄μ λ°λΌ μ±λ₯ μ§μ°μ λ€λ₯΄κ² μΈμνλ€. λΉ λ₯Έ λ€νΈμν¬ μνμ λΉ λ₯Έ λ°μ€ν¬ν± μ»΄ν¨ν°μμλ μ¬μ΄νΈλ₯Ό λ‘λνλ κ²μ 1μ΄ μ΄λ΄μ λ°μνλ κ²μ μ΅μνλ€. νμ§λ§ λλ¦° 3G μ°κ²°λ‘ λͺ¨λ°μΌ μ₯μΉμ μ¬μ΄νΈλ₯Ό λ‘λνλ κ²μ λ μ€λ 걸리기 λλ¬Έμ λͺ¨λ°μΌ μ¬μ©μλ μΈλ΄μ¬μ΄ λ λ§λ€. κ·Έλμ λͺ¨λ°μΌμμλ 5μ΄ μ΄λ΄μ λ‘λνλ κ²μ΄ λ νμ€μ μΈ λͺ©νλ€.
μ¬μ©μ μ λ ₯μ΄ μμνκ³ μνΈμμ©μ΄ μ¦κ°μ μΈ κ²μ²λΌ λλΌλλ‘ νλ €λ©΄ 100ms μ΄λ΄μ λ°μν΄μΌ νλ€. λ²νΌ ν΄λ¦, μ λλ©μ΄μ μμκ³Ό κ°μ λλΆλΆμ μ λ ₯μ μλ―Ένκ³ , ν°μΉ λλκ·Έμ μ€ν¬λ‘€μ ν΄λΉλμ§ μλλ€.
μ΄λ²€νΈ μ²λ¦¬ μκ°μ 50ms μ΄λ΄μ μ²λ¦¬ν΄μΌ νλ€. λ§μ½μ 50ms μ΄μ 걸리면 μ¬μ©μμκ² λ€λ₯Έ λ°μμ λ¨Όμ μ 곡ν΄μΌ νλ€.
[1] Idle Time Garbage Collection Scheduling > 4. Idle Task Scheduling
ν¬λ‘¬ λΈλΌμ°μ μμλ μ ν΄ μκ°μ 50ms[1]λ‘ μ ννλ€. μ¬μ©μκ° λ°μνλ μ λ ₯μ μ΅λ 50ms λμ λκΈ°ν μ μλ€. κ·Έλμ μ λ ₯ μ²λ¦¬ μκ°μ μ΅λ 50ms λμ μ¬μ©ν μ μλ€κ³ κ°μ νλ κ²μ΄λ€.
Animationμ λΉμ£ΌμΌ μ λλ©μ΄μ , λ‘λ©, μ€ν¬λ‘€, λλκ·Έμ κ°μ κ²μ μλ―Ένλ€.
κ° νλ μμ 10ms μ΄νλ‘ μμ±ν΄μΌ νλ€. μλνλ©΄, νλ μμ μ΅λ μκ°μ 16msμ΄μ§λ§ λΈλΌμ°μ λ λ λλ§νλ λ° μ½ 6msκ° νμνλ―λ‘ μ²λ¦¬μκ°μ 10msκ° λλ€.
μ λλ©μ΄μ μ΄ 60fpsκ° μλ λλ λ λλ§ μ±λ₯μ μ°Έμ‘°ν΄μ ν΄κ²°νλ€.
μ ν΄ μκ°μ λ°μ΄ν° λ‘λ, μ¬μ©μ μ λ ₯ μλ΅μ΄ λ°μνλ λ°, μ ν΄ μκ°μ κ°μ§μ§ μμΌλ©΄ μ΄κ²λ€μ λ°©ν΄ν μ μλ€.
첫 λ²μ§Έ λ‘λλ λͺ¨λ°μΌ μ¬μ©μ μ₯μΉμ λλ¦° λ€νΈμν¬λ₯Ό κ³ λ €ν΄μ 5μ΄ μ΄λ΄μ λ‘λ λΌμΌνκ³ , νμ λ‘λλ 2μ΄ μ΄λ΄μ λ‘λνλ κ²μ΄ μ’λ€. 첫 λ²μ§Έ λ‘λμμ λͺ¨λ 리μμ€λ₯Ό λ‘λ ν νμλ μμ΄ μ§μ° λ‘λ© μ΄λ―Έμ§, μ½λ λ²λ€λ§μ ν΅ν΄ μ§μ° λ‘λλ‘ νμ λ‘λλ₯Ό νλ κ² μ’λ€.
λ€νΈμν¬ μλ λ° λκΈ° μκ°, νλμ¨μ΄(μ: λλ¦° CPU), μΊμ, JS ꡬ문 λΆμ λ±μ΄ λ‘λμ μν₯μ λ―ΈμΉλ€.