_대문 | 방명록 | 최근글 | 홈피소개 | 주인놈 |
FrontPage › 최적화의우선순위
|
|
문서 작성중..
[edit]
1 개요 #작업이 여러 개가 있다고 가정하자. MS-SQL Server의 경우는 전체 비용이 얼마인지 대충 계산을 할 수가 있다. 예를 들어 다음과 같이 쿼리를 실행했을 때에 SQL Server의 실행계획을 볼 수 있다.
select * from sys.sysobjects ![]() 그러므로 전체 SQL과 SP엗 대한 '하위 트리 비용'을 수집하고, 실행(또는 호출) 횟수를 수집하면 어플리케이션의 비용을 산출 할 수 있다. 그리고 각각의 SP와 SQL에 대해서 code line수 등으로 복잡성을 산출하여 수정 비용을 계산합니다. 그래서 아래의 법칙을 적용하여 계산을 때립니다.
맞나? 아.. 씨발.. 존나 어렵네..
더 정리 필요하다.. [edit]
2 암달의 법칙(Amdahl's law) #암달의 법칙이란, 병렬처리 프로그램에서 차례로 수행되어야 하는 비교적 적은 수의 명령문들이, 프로세서의 수를 추가하더라도 그 프로그램의 실행을 더 빠르게 할 수 없도록 속도향상을 제한하는 요소를 갖고 있다는 것이다. 암달의 법칙에 따르면, 어떤 시스템을 개선하여 P 만큼의 부분에서 S 만큼의 성능 향상이 있을 때 전체 시스템에서 최대 성능 향상은 다음과 같다.
SpeedUp = 1 / ((1-P) + (P/S))
예를 들어서 어떤 작업의 40%에 해당하는 부분의 속도를 2배로 늘릴 수 있다면, P는 0.4이고 S는 2이고 최대 성능 향상은 1.25(=1/((1-0.4)+(0.4/2)))가 된다. 개선 후 실행시간은 (개선에 의해 영향을 받는 실행 시간 / (100 + 영향을 받지 않는 실행 시간))으로 개산된다. (
![]()
[edit]
3 병렬처리 #2개의 코어를 가진 CPU를 장착한 머신의 경우, 병렬 연산 효율 법칙에 따라 2개의 프로세서로 작업을 하는 경우 이론적으로 1.3배 정도의 향상이 있게 된다.
Tp = (%S + (1-%S) / N) * Ts
SpeedUp = Ts/Tp
|
지혜로움을 나타내는 가장 분명한 표현은 명랑한 얼굴이다. (몽테뉴) |