JAVA기반 스마트 개발2021/프로그래밍 언어활용
애플리케이션 최적화
리피아
2021. 8. 8. 12:37
728x90
최적화란?
● 정보공학에서 시스템을 수정하여 어떠한 면의 작업을 더 효과적으로, 또는 자원을 덜 사용하도록 만드는 작업
컴퓨터 프로그램은 더 빠르게 실행되거나 기억 장치 또는 자원을 덜 차지하게 운영하도록 개선
유지보수의 편의성을 고려한 코드 개선
안전성 확보를 위한 최적화
최적화 기법
성능 체크 : 최적화 대상 선정코드 분석 : 최적화 향상
1. 병목지점 찾기(소요시간)
2. 구조체 복사 시 대입연산자 대신 라이브러리 함수를 이용
3. 구조체 전달은 포인터를 이용
4. 함수의 매개변수를 축소
--> 4개 이하 : 레지스터 이용
--> 4개 이상 : 스택 이용
5. 4바이트 이상 전달 시 포인터를 이용
6. 4개 이상인 경우 인자를 구조체로 선언하고 구조체 포인터를 매개변수로 전달
7. const를 적절히 활용
8. 2의 n제곱을 곱하는 연산은 쉬프트 연산 수행
9. 실수연산을 축소
10. 소수점 이하 2자리까지만 필요한 연산
11. 지역변수를 최대한 할용
12. 전역변수 사용을 최소화
매개변수 최적화
1 구조체는 포인터로 전달
2. 4바이트(Byte) 이상의 데이터는 포인터로 전달
3. 여러 개의 매개변수를 구조체로 전달
안정성 확보를 통한 최적화
1. const 활용
Optimization
- 최적화란 프로그램이 최소의 자원 사용으로 최소 시간에 수행될 수 있도록
코드를 개선하는 과정을 말함 - 유지보수의 편의성을 고려한 코드 개선도 포함됨
- 안정성 확보도 코드 최적화 기법 중 하나에 해당됨
최적화 작업하기
- 실수연산보다 정수연산이 더 빠름
- 4바이트 이상의 매개변수는 포인터로 전달함
- 여러 개의 동일한 데이터 형의 매개변수는 배열로 전달함
- 여러 개의 다른 데이터 형의 매개변수는 구조체로 전달함