μΆμ²
ChatGPT
νλ‘νμΌProfile
μ μ
- νλ‘κ·Έλ¨μ νΉμ μΈ‘λ©΄(μ: μ€ν μκ°, λ©λͺ¨λ¦¬ μ¬μ©λ, CPU μ¬μ©λ₯ λ±)μ λν λ°μ΄ν°μ ν΅κ³λ₯Ό μμ§ν κ²°κ³Ό
- λ³΄ν΅ νΉμ 쑰건μ΄λ νκ²½μμ νλ‘κ·Έλλ―Έ μ΄λ»κ² λμνλμ§λ₯Ό λνλ΄λ "μ€λ μ·"μΌλ‘ λ³Ό μ μλ€.
μ©λ
- μ£Όλ‘ μννΈμ¨μ΄ μ±λ₯ μ΅μ νλ₯Ό μν λΆμ μλ£λ‘ νμ©λλ€.
- μ±λ₯ λ³λͺ© μ§μ μ μλ³νκ³ , κ°μ μ΄ νμν λΆλΆμ μ νν μ°Ύλ λ° λμμ΄ λλ€.
μμ
CPU νλ‘νμΌ
- ν¨μλ λ©μλκ° CPUλ₯Ό μΌλ§λ μ¬μ©νλμ§μ λν μ 보
λ©λͺ¨λ¦¬ νλ‘νμΌ
- νΉμ κ°μ²΄λ λ°μ΄ν° κ΅¬μ‘°κ° μΌλ§λ λ§μ λ©λͺ¨λ¦¬λ₯Ό μ¬μ©νλμ§μ λν μ 보
I/O νλ‘νμΌ
- νμΌ μμ€ν μ΄λ λ€νΈμν¬μμ μ μΆλ ₯ μμ μ΄ μ΄λ»κ² μ΄λ£¨μ΄μ§λμ§λ₯Ό 보μ¬μ£Όλ λ°μ΄ν°
νλ‘νμΌλ§ Profiling
μ μ
- νλ‘κ·Έλ¨μ μ±λ₯ λ° μμ μ¬μ©μ λΆμνκΈ° μν΄ μ€ν μ€μΈ νλ‘κ·Έλ¨μ λμμ μΆμ νκ³ λ°μ΄ν°(νλ‘νμΌ)μ μμ§νλ κ³Όμ
- μ€μκ°μΌλ‘, λλ νΉμ μμ μ νλ‘κ·Έλ¨μ μ±λ₯ νΉμ±μ νμ νλ λ° μ¬μ©λλ€.
λͺ©ν
1. μ±λ₯ μ΅μ ν
- μ½λμ λ³λͺ© νμμ μλ³νκ³ κ°μ νμ¬ νλ‘κ·Έλ¨μ μ€ν μλλ₯Ό λμΈλ€.
2. μμ κ΄λ¦¬
- λ©λͺ¨λ¦¬, CPU, λμ€ν¬ I/O λ±μ μμ μ¬μ©μ λͺ¨λν°λ§νκ³ μ΅μ ννλ€.
3. λλ²κΉ
- μκΈ°μΉ μμ λμμ΄λ μ±λ₯ λ¬Έμ λ₯Ό νμ νκ³ μμ νλ€.
νλ‘νμΌλ§ λ°©λ²
μνλ§(Sampling) νλ‘νμΌλ§
- μ£ΌκΈ°μ μΌλ‘ νλ‘κ·Έλ¨μ μνλ₯Ό νμΈνμ¬ ν΅κ³λ₯Ό μμ§νλ λ°©λ²μ΄λ€. μ΄ λ°©λ²μ μ±λ₯μ ν° μν₯μ λ―ΈμΉμ§ μκ³ λλ΅μ μΈ μ 보λ₯Ό μ»μ μ μλ€.
κ³μΈ‘(Instrumentation) νλ‘νμΌλ§
- νλ‘κ·Έλ¨ μ½λμ νΉμ μ§μ μ κ³μΈ‘ μ½λ(Instrumentation Code)λ₯Ό μ½μ ν΄ μ€ν μ€μ μμΈν λ°μ΄ν°λ₯Ό μμ§νλ λ°©λ²μ΄λ€. μ΄λ λ μ νν μ 보λ₯Ό μ 곡νμ§λ§, νλ‘κ·Έλ¨μ μ±λ₯μ μν₯μ μ€ μ μλ€.
νλ‘νμΌλ§ μ ν
1.CPU νλ‘νμΌλ§
λͺ©μ
ν¨μλ λ©μλμ CPU μ¬μ© μκ°μ μΆμ νμ¬, μ΄λ λΆλΆμ΄ κ°μ₯ λ§μ CPU μκ°μ μ°¨μ§νλμ§ νμ νλ€.
λꡬ μμ
- Java: VisualVM, JProfiler
- Python: cProfile, Py-Spy
- C/C++: gprof, Valgrind
2. λ©λͺ¨λ¦¬ νλ‘νμΌλ§
λͺ©μ
νλ‘κ·Έλ¨μ λ©λͺ¨λ¦¬ μ¬μ© ν¨ν΄μ λΆμνμ¬, λ©λͺ¨λ¦¬ λμ(leak)κ° λ°μνλμ§, λλ μ΄λ€ κ°μ²΄κ° λ©λͺ¨λ¦¬λ₯Ό λ§μ΄ μ°¨μ§νλμ§ νμΈνλ€.
λꡬ μμ
- Java: Eclipse Memory Analyzer (MAT)
- Python: objgraph, memory_profiler
- C/C++: Valgrind Massif, Heaptrack
3. I/O νλ‘νμΌλ§
λͺ©μ
νμΌ μμ€ν , λ€νΈμν¬ λ±μ μ μΆλ ₯ μμ μ΄ νλ‘κ·Έλ¨ μ±λ₯μ λ―ΈμΉλ μν₯μ λΆμνλ€.
λꡬ μμ
- Linux: iostat, iotop, sar
- Windows: Resource Monitor
νλ‘νμΌλ§ μ€μ μ¬λ‘
μμ 1: μΉ μ ν리μΌμ΄μ μ±λ₯ κ°μ
1. νλ‘νμΌλ§ μ€ν
- μΉ μλ²μμ CPUμ λ©λͺ¨λ¦¬ μ¬μ©μ λͺ¨λν°λ§νλ€.
- HTTP μμ² μ²λ¦¬ μκ°μ κΈ°λ‘νλ€.
2. λ³λͺ© μ§μ λ°κ²¬
- νΉμ API μλν¬μΈνΈμμ CPU μ¬μ©λ₯ μ΄ λΉμ μμ μΌλ‘ λμμ λ°κ²¬νλ€.
- ν΄λΉ μλν¬μΈνΈμ λ°μ΄ν°λ² μ΄μ€ μΏΌλ¦¬κ° λλ¦¬κ² μ€νλλ κ²μ νμΈνλ€.
3. μ±λ₯ μ΅μ ν
- λ°μ΄ν°λ² μ΄μ€ μΈλ±μ€λ₯Ό μΆκ°νμ¬ μΏΌλ¦¬ μ±λ₯μ ν₯μμν¨λ€.
- λΉν¨μ¨μ μΈ μκ³ λ¦¬μ¦μ μ΅μ ννλ€.
4. κ²°κ³Ό νκ³Ό
- API μλ΅ μκ°μ΄ 50% μ΄μ κ°μ λλ€.
- μλ²μ CPU μ¬μ©λ₯ μ΄ μ€μ΄λ λ€.
μμ 2: λͺ¨λ°μΌ μ± λ©λͺ¨λ¦¬ κ΄λ¦¬
1. νλ‘νμΌλ§ μ€ν
- λͺ¨λ°μΌ μ±μμ λ©λͺ¨λ¦¬ μ¬μ©λμ μΆμ νλ€.
- νΉμ κΈ°λ₯ μ€ν μ λ©λͺ¨λ¦¬ μ¬μ© λ³νλ₯Ό λͺ¨λν°λ§νλ€.
2. λ¬Έμ μλ³
- νΉμ κΈ°λ₯μμ λ©λͺ¨λ¦¬ λμκ° λ°μν¨μ λ°κ²¬νλ€.
- μ΄λ―Έμ§ κ°μ²΄κ° ν΄μ λμ§ μκ³ μ§μμ μΌλ‘ λ©λͺ¨λ¦¬λ₯Ό μ μ νλ€.
3. λ¬Έμ ν΄κ²°
- λΆνμν κ°μ²΄μ μ°Έμ‘°λ₯Ό ν΄μ νμ¬ κ°λΉμ§ 컬λ μ μ΄ κ°λ₯νλλ‘ νλ€.
- μ΄λ―Έμ§ λ‘λ© λΌμ΄λΈλ¬λ¦¬λ₯Ό κ΅μ²΄νμ¬ λ©λͺ¨λ¦¬ ν¨μ¨μ κ°μ νλ€.
4. κ²°κ³Ό νκ³Ό
- λ©λͺ¨λ¦¬ μ¬μ©λμ΄ 30% κ°μνκ³ , μ±μ μμ μ±μ΄ κ°μ λ©λλ€.
νλ‘νμΌλ§ μ₯μ
μ±λ₯ κ°μ
- λ³λͺ© νμμ μλ³νμ¬ μ½λμ μ€ν μλλ₯Ό ν₯μμν¨λ€.
μμ ν¨μ¨μ±
- CPU, λ©λͺ¨λ¦¬, I/O μμμ μ¬μ©μ μ΅²κ±°ννμ¬ μμ€ν ν¨μ¨μ±μ λμΈλ€.
λλ²κΉ μ§μ
- μκΈ°μΉ μμ λμμ΄λ μ±λ₯ λ¬Έμ λ₯Ό μλ³νκ³ μμ νλ λ° λμμ΄ λλ¨.
μ¬μ©μ κ²½ν κ°μ
- μ΅μ νλ μ±λ₯μ ν΅ν΄ μ¬μ©μμκ² λ λμ κ²½νμ μ 곡νλ€.
κ²°λ‘
νλ‘νμΌκ³Ό νλ‘νμΌλ¦¬μ μννΈμ¨μ΄ κ°λ°μμ νμμ μΈ λꡬλ‘, μ ν리μΌμ΄μ μ μ±λ₯ λ° μμ μ¬μ©μ μ΅μ ννλ λ° μ€μν μν μ νλ€. μ΄λ¬ν κΈ°μ μ ν¨κ³Όμ μΌλ‘ νμ©νλ©° νλ‘κ·Έλ¨μ μ€ν ν¨μ¨μ±μ κ·Ήλννκ³ , μ¬μ©μμκ² λ λμ κ²½νμ μ 곡ν μ μλ€. μ΄λ₯Ό ν΅ν΄ κ°λ°μλ μ½λμ μ±λ₯ λ³λͺ©μ νμ νκ³ μ΅μ νν μ μμΌλ©°, μ΄λ μ 체 μμ€ν μ μμ μ±κ³Ό ν¨μ¨μ±μ ν¬κ² ν₯μμν¨λ€.
ChatGPTμκ² μ΄ κΈμ μΆμ²λ₯Ό λ¬Όμλ€.
νλ‘νμΌκ³Ό νλ‘νμΌλ§ μ©μ΄μ λν μ€λͺ μ μ¬λ¬ μ λ’°ν μ μλ κΈ°μ μλ£μ μμ€μμ μ»μ΄μ§ μΌλ°μ μΈ μ§μμ λ°νμΌλ‘ μ 곡λμμ΅λλ€. λ€μμ μ΄λ¬ν κ°λ μ λν΄ μ΄ν΄ν μ μλ μ£Όμ μΆμ²λ€μ λλ€:
- μ»΄ν¨ν° κ³Όν μμ
- "Computer Systems: A Programmer's Perspective" by Randal E. Bryant and David R. O'Hallaron
- λ΄μ©: μ΄ μ± μ μμ€ν νλ‘κ·Έλλ°, μ±λ₯ λΆμ, νλ‘νμΌλ§μ κ΄ν λ΄μ©μ ν¬κ΄μ μΌλ‘ λ€λ£Ήλλ€. νλ‘νμΌλ§μ κ°λ κ³Ό μΈ‘μ λ°©λ², μ±λ₯ λΆμμ κΈ°μ΄λ₯Ό μ€λͺ ν©λλ€.
- λ§ν¬: Computer Systems: A Programmer's Perspective
- "Performance Analysis and Tuning on Modern CPUs" by Hong Zhang
- λ΄μ©: μ±λ₯ λΆμ λ° νλ‘νμΌλ§ κΈ°μ , νΉν νλ CPUμμμ μ±λ₯ λ¬Έμ λ₯Ό λΆμνλ λ°©λ²μ μ€λͺ ν©λλ€.
- λ§ν¬: Performance Analysis and Tuning on Modern CPUs
- "Computer Systems: A Programmer's Perspective" by Randal E. Bryant and David R. O'Hallaron
- 곡μ λ¬Έμ λ° κΈ°μ μλ£
- GCC νλ‘νμΌλ§ λ¬Έμ
- λ΄μ©: GCC μ»΄νμΌλ¬μμ μ 곡νλ νλ‘νμΌλ§ λꡬμ κ΄λ ¨λ λ¬Έμμ λλ€. νλ‘νμΌλ§μ μ리μ μ¬μ© λ°©λ²μ μ€λͺ ν©λλ€.
- λ§ν¬: GCC Profiling
- Java Profiling Documentation
- λ΄μ©: μλ°μμμ νλ‘νμΌλ§ λ° μ±λ₯ λΆμ λꡬμ λν μ€λͺ μ μ 곡νλ 곡μ λ¬Έμμ λλ€.
- λ§ν¬: Java Profiling Tools
- GCC νλ‘νμΌλ§ λ¬Έμ
- κΈ°μ λΈλ‘κ·Έ λ° μ¨λΌμΈ μλ£
- Mediumκ³Ό κ°μ κΈ°μ λΈλ‘κ·Έ
- λ΄μ©: μ΅μ κΈ°μ λν₯κ³Ό μ±λ₯ λΆμ, νλ‘νμΌλ§ κΈ°λ²μ κ΄ν λΈλ‘κ·Έ ν¬μ€νΈλ€μ΄ ν¬ν¨λ©λλ€.
- λ§ν¬: Medium's Technology Section
- Stack Overflow
- λ΄μ©: κ°λ°μλ€μ΄ νλ‘νμΌλ§κ³Ό κ΄λ ¨λ μ§λ¬Έκ³Ό λ΅λ³μ 곡μ νλ ν¬λΌμ λλ€.
- λ§ν¬: Stack Overflow
- Mediumκ³Ό κ°μ κΈ°μ λΈλ‘κ·Έ
- νλ‘νμΌ λ° νλ‘νμΌλ§ μ©μ΄ μΆμ²
'λΉ κ΅¬λ© μ±μ°κΈ°' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[RESTful API]RESTful APIλ (0) | 2024.07.29 |
---|---|
[Android][ART] ARTμ νλ‘νμΌ κΈ°λ° μ»΄νμΌ (0) | 2024.07.26 |
[JVM] λ€μ΄ν°λΈ μ½λμ JVM (0) | 2024.07.26 |
[Compiler] μ½λ ν¨μ€(μ½λ κ²½λ‘) + μ½λ ν¨μ€μ μ»΄νμΌλ¬ μ΅μ ν (0) | 2024.07.26 |
[ART][Compiler] JIT μ»΄νμΌλ¬μ AOT μ»΄νμΌλ¬μ λ³ν μ¬μ© μ΄μ + ART μμ (0) | 2024.07.26 |