Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- CPU
- CSS
- 이벤트버블링
- 이벤트
- 브라우저 렌더링 원리
- css배경
- do it! 한권으로 끝내는 웹 기본 교과서 html+css+자바스크립트 웹 표준의 정석
- propschildren
- 메모리와 캐시 메모리
- 코딩 자율학습
- HTML
- JS
- 비대칭키 암호화
- Do it
- html 필수태그
- 코딩
- do it! html+css+자바스크립트 웹 표준의 정석
- JavaScript
- TS
- Git
- css박스 모델
- 자바스크립트
- 혼자 공부하는 컴퓨터구조+운영체제
- https://api.jquery.com/
- react
- 코딩자율학습
- 코딩 자율학습 html + css + 자바스크립트]
- css필수 속성
- cpu 성능 향상 기법
- 코딩 자율학습 html + css + 자바스크립트
Archives
- Today
- Total
게으른 나에게
[CS] - 코드 최적화(Code Optimization) 본문
코드 최적화(Code Optimization)
- 컴파일러가 코드를 기계어로 변환할 때, 성능을 향상시키기 위해 실행 속도를 높이고 리소스 사용을 최소화하는 과정
- 단순히 코드 변환이 아닌, 최적화를 수행하여 실행 성능을 향상
- 가독성과 유지보수성을 고려하면서도 효율적인 자원 사용을 목표
코드 최적화의 주요 목표
- 명령어 수 최소화(Minimize number of instructions)
- 중복된 연산 제거 및 불필요한 연산 감소
- 곱셈, 나눗셈 등의 느린 연산 최소화
- 메모리 대기 시간 단축(Avoid waiting for memory)
- 레지스터에 데이터를 유지하여 CPU 접근 속도 증가
- 캐시 친화적인 메모리 접근 방식 적용
- 분기(branch) 최소화(Avoid branching)
- 불필요한 조건문과 분기문 제거
- 분기 예측 최적화를 돕는 코드 작성
특징
- 불필요한 계산 제거
- 중복된 연산을 피하고, 연산 횟수를 최소화
- 변수 값을 여러 번 계산하는 대신, 한 번 계산 후 저장하여 재사용
- 루프 최적화
- 루프 내부 연산을 최소화하여 반복문 성능 향상
- 가능하면 루프 회전 수를 줄이는 방식 고려
- 적절한 자료 구조 및 알고리즘 선택
- 효율적인 자료구조(배열, 해시 테이블, 트리 등) 사용하여 데이터 처리 속도 향상
- 시간복잡도와 공간복잡도를 고려한 최적의 알고리즘 선택
- 코드 중복 제거
- 중복된 코드 최소화하여 유지보수성 증가
- 공통된 로직은 함수화하여 재사용
- 메모리 관리 최적화
- 메모리 누수(Leak) 방지 및 불필요한 객체 생성 최소화
- 불필요한 데이터 복사 제거 및 참조방식 활용
- I/O 연산 최소화
- 디스크 접근 및 네트워크 요청을 최소화하여 성능 향상
- 버퍼링 및 비동기 처리 적용
코드 최적화 기법 예시
- 변수 값 저장 및 함수 호출 최적화
- 변수를 여러 개 사용하는 대신, 연속된 저장 방식을 활용하여 성능 최적화
- 함수 호출을 최소화하여 오버헤드 감소
- 비슷한 변수는 객체(Object)로 저장
- 관련된 변수를 하나의 객체로 묶어 관리하면 메모리 접근 효율 증가
- 반복적으로 사용되는 명령어는 함수로 관리
- 동일한 코드가 여러 번 사용될 경우, 함수로 만들어 코드 중복 제거
- 비효율적인 메모리 사용 방지
- 전역 변수(Global Variable) 사용을 피하고, 필요한 범위 내에서 변수 선언
- 필요 없는 데이터는 즉시 제거하여 Garbage Collection 최적화
코드 최적화 중요성
- 실행 속도 향상
- 코드 최적화를 통해 CPU 및 메모리 자원을 효율적으로 사용하여 실행 속도를 향상
- 리소스 사용 감소
- 불필요한 연산과 메모리 사용을 줄여 성능을 개선
- 네트워크 트래픽 감소 및 서버 부하 최적화 가능
- 사용자 경험 개선
- 빠른 응답 속도로 UI/UX 향상
- 모바일 및 웹 애플리케이션에서 전력 소비 절감 및 배터리 최적화 가능
- 유지보수 용이성 증가
- 가독성이 높은 최적화된 코드는 개발자 간 협업을 용이
- 유지보수 비용 절감 효과
- 프로젝트 성공에 기여
- 빠르고 안정적인 코드는 기업의 비즈니스 성과와 직결됨
- 대규모 시스템에서는 코드 최적화가 필수 요소
'My Study > CS' 카테고리의 다른 글
[클라우드 서비스] - SaaS (Software as a Service) (0) | 2025.03.25 |
---|---|
[암호학] - 대칭 키 암호화와 비대칭 키 암호화 (1) | 2025.03.25 |
[CS] - 컴파일러(Compiler)와 인터프리터(Interpreter) (1) | 2025.03.24 |
[소프트웨어] - MVC(Model-View-Controller) 패턴 (0) | 2025.03.24 |
[컴퓨터 아키텍처] - CPU와 GPU (1) | 2025.03.23 |