κ·Έ λμ λ§μ°νκ²λ νμ μ΄λ Έν μ΄μ (λͺ μ)κ° μ»΄νμΌ μλκ° λ λΉ λ₯΄λ€κ³ μκ°νλμ§λΌ μ무 μκ° μμ΄ νμ λͺ μλ₯Ό νλ μ΅κ΄μ λ€μ΄κ³ μμλ€. κ·Έλ¬λ μ΅κ·Ό λ£κ³ μλ κ΅μ‘ κ³Όμ μμ λ©ν λκ»μ νμ μΆλ‘ μ νλ κ²μ΄ λ λμ보μΈλ€λΌλ λ§μμ ν΄μ£Όμ ¨κ³ , μμΈμ§ κΆκΈνλμ§λΌ μ¬μ€λ³΄κ² λμλ€. λ΅λ³ μ£Όμ κ²μΌλ‘λ μ»΄νμΌλ¬μ μ±λ₯μ΄ μ μ λ κ°μ λκ³ μκ³ , νμ μΆλ‘ μ΄ μ»΄νμΌ μλκ° λ λΉ λ₯΄λ€λ μ€ν κ²°κ³Όλ μλ€κ³ λ΅λ³μ£Όμ ¨λ€.
μ€μ λ‘ μλμ 첨λΆν λ§ν¬λ₯Ό 보면 κ°λ¨ν μ€ν κ²°κ³Όλ₯Ό νμΈν΄λ³Ό μ μλ€.
https://forums.swift.org/t/regarding-swift-type-inference-compile-time-performance/49748/2
let a = "hello, world!" // type is inferred
let b = String("hello, world!") // type is inferred from String(...) and then passed to the root (the constant b)
let c: String = .init("hello, world!") // type inference is not required
let d: String = "hello, world!" // type inference is not required
κ²°κ³Όλ₯Ό 보면 1λ²(νμ μΆλ‘ )μ ν κ²μ΄ μλκ° κ°μ₯ λΉ¨λλ€.
Benchmark #1: xcrun swiftc -typecheck a.swift
Time (mean ± σ): 175.7 ms ± 3.5 ms [User: 82.9 ms, System: 81.9 ms]
Range (min … max): 171.0 ms … 182.8 ms 16 runs
Benchmark #1: xcrun swiftc -typecheck b.swift
Time (mean ± σ): 224.8 ms ± 2.8 ms [User: 131.1 ms, System: 81.7 ms]
Range (min … max): 220.2 ms … 228.2 ms 13 runs
Benchmark #1: xcrun swiftc -typecheck c.swift
Time (mean ± σ): 672.3 ms ± 8.0 ms [User: 568.3 ms, System: 93.7 ms]
Range (min … max): 662.4 ms … 685.1 ms 10 runs
Benchmark #1: xcrun swiftc -typecheck d.swift
Time (mean ± σ): 213.3 ms ± 2.0 ms [User: 119.8 ms, System: 81.6 ms]
Range (min … max): 210.2 ms … 216.5 ms 13 runs
λλ νμ μ μΆλ‘ νλλ° λ λ§μ 리μμ€κ° λ€ κ²μ΄λΌκ³ κ·Έλ₯ μκ°νκ³ μμλλ° νμ μΆλ‘ μ΄ μλκ° λ λΉ λ₯΄λ€λ... λ¬Όλ‘ μ€ν κ²°κ³Ό μ€ 1κ°μ§μ΄κΈ΄ νμ§λ§ λκ² μ κΈ°νλ€. λ§λΆμ¬μ λ©ν λκ»μλ νμ μ λͺ μνκ² λλ©΄ μ»΄νμΌλ¬κ° λͺ μλ νμ κ³Ό μ΄κΉκ°μ λΉκ΅νλ μμ μ΄ μΆκ°λμ΄μ λ λλ¦¬κ³ , μ μ΄μ νμ λͺ μμ νμ μΆλ‘ μλ μ°¨μ΄ μ체λ λ°λ¦¬μΈμ»¨λ λ¨μ μ°¨μ΄λ‘ λ―ΈμΈνλ€λΌκ³ λ§μ ν΄μ£Όμ ¨λ€.
μ»΄νμΌ μ±λ₯ μ체μ μν₯μ ν¬κ² μ£Όλ κ²μ΄ μλλΌλ©΄, νμ λͺ μλ₯Ό νλνλ ν΄μ£Όλ κ²μ μ λ§ λΉν¨μ¨μ μΈ μμ μΌ κ²μ΄λ€. νμ μΆλ‘ μ νλ λ°©ν₯μΌλ‘ μ½λ μμ± μ΅κ΄μ λ°κΎΈλλ‘ ν΄μΌκ² λ€. κ·Έλ¦¬κ³ νμ€ν κ·Όκ±° μμ΄ λ§μ°ν 무μμ΄ λ μ’κ² λ€λΌκ³ μκ°νλ λ μμ μ λ°μ±νκ³ μ νλ€.
'π iOS & Swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[WWDC19] Introducing Combine (0) | 2022.08.10 |
---|---|
[iOS] DateFormat, μ΄κ±°νμΌλ‘ μ’ λ μ½κ² λ€λ£¨κΈ° (8) | 2022.08.09 |
[WWDC21] SheetViewController (Session. Customize and resize sheets in UIKit) (0) | 2022.08.02 |
Enumμ νμ©ν΄ TableViewController ꡬμ±νκΈ° (1) | 2022.07.19 |
forEachμ for-inμ λν κ³ μ°° (0) | 2022.07.19 |