아...
비가 쩔어주게 오네요.
책 제본뜨러 가야 하는데;;
----------------------------------------------------------------------------------------
요즘은 컴퓨터가 워낙에 빨라져서 코드 최적화에 대해 대학이나 여타 여러곳에서 잘 언급을
하지 않는 것 같습니다. 그래도 KOI 준비하는 학생분들은 시간적 옵티마이즈에 목숨을 걸지요 =ㅁ=
최대한 빠르게 동작해야 하니까요.
예전의 느린 컴퓨터에서는 시간을 줄이기 위한 최적화가 종종 이루어 졌습니다.
물론 요즘도 실행시간을 줄이기 위한 시도(암호깨기...)가 종종 이루어 지지만 말이지요.
추...추억의 286입니다 -_-;
저때만 해도 느린 컴퓨터 덕분에 시간 차원의 옵티마이즈가 필요했습니다.
http://retirno.pe.kr/117?srchid=BR1http%3A%2F%2Fretirno.pe.kr%2F117
소수판별법의 기본형입니다.
n의 데이터에 대해 최악의 경우 a의 시간이 걸리지요 -_-;
http://tblog.javaf.net/541?srchid=BR1http%3A%2F%2Ftblog.javaf.net%2F541
이건 소수판별법의 소규모 변형입니다.
합성수의 약수들이 루트n을 기준으로 좌우대칭형으로 존재하기 때문에
루트n까지만 조사하면 된다는 특성을 이용한 변형 알고리즘이지요.
그래도 필요한 시간복잡도는 루트n입니다.
http://dlbo.tistory.com/305
밀러-라빈 소수판별법이라는 확률론적인 소수판정법입니다.
n에 대해 k회의 소수판정을 실시했을때, n의 소수판정이 틀릴 확률은 2의 k승입니다.
n의 크기에 따라 (약 20 정도) 일반 소수판별보다 느릴 수 있으나,
수가 커지면 커질수록 매우 빠른 속도효율을 얻게 되지요.
대략 요런 느낌이랄까 =ㅁ=
이런 방식을 알고리즘 측면의 속도 옵티마이즈라 합니다.
그런데 코드가 난잡해져 읽기 힘들어지면,
아무래도 직장 상사한테 싸다구를
요걸로 후려맞겠죠 -_-;;
대표적인 예시를 보지요.
http://dlbo.tistory.com/196
트리 서밍 문제의 일반적인 해답 코드입니다.
그리고...
전설의 숏코더 cozy ozy(ozy4dm)의 gcc 코드입니다. -_-;;
이런 것을 맹목적인 속도 옵티마이즈라고 합니다.
알고리즘 차원에서도 옵티마이즈를 했으나,
코드의 가동속도를 최대한 끌어올리기 위해 온갖 변태짓을 해 실행해야 할 기계어 코드를
최대한 대폭 줄여버리는 것이지요.
아, 물론 이방법도 기계어코드를 직접 터치해버리는 방식에는 미치지 못하긴 합니다 =ㅁ=
그래도.
이렇게 했다간 상사한테 후들겨 맞기 좋답니다 -_-;
또 다른 최적화로써 메모리 공간의 옵티마이즈 방식이 있습니다.
http://zfanta.com/entry/for문-10000번-VS-노가다-타이핑-10000번
ㅋㅋㅋㅋㅋㅋ 환타님의 포스트입니다.
파일 크기의 문제도 발생하지만,
문제는 저 파일 내용을 고.대.로 메모리에 로드한다는것도 문제입니다.
이 경우는 컴파일러가 멍청(?)해서 생긴 경우지만,
좀 복잡한 코드가 될 경우 프로그래머가 직접 구조를 변경해 사용할 메모리를 줄여주어야 하지요.
메모리 사용량은 곧 전력소모와도 연결되기 때문에,
요즘 유행하는 임베디드 시스템에서의 '저전력' 설계와도 연관되게 됩니다.
한번에 최대한 적은 데이터가 이동하면서 모든 일을 처리해야 하는 형태이지요.
아무리 아이폰이 잘났어도 10초만에 꺼지면 눈물나겠지요? -_-;;
그렇다고 해서
요러시면 안됩니다 =ㅁ=;;
------------------------------------------------------------------------------------------------
크흠. 뭔가 글이 상당히 산만한거 같네요 ㄱ-
비가 쩔어주게 오네요.
책 제본뜨러 가야 하는데;;
----------------------------------------------------------------------------------------
요즘은 컴퓨터가 워낙에 빨라져서 코드 최적화에 대해 대학이나 여타 여러곳에서 잘 언급을
하지 않는 것 같습니다. 그래도 KOI 준비하는 학생분들은 시간적 옵티마이즈에 목숨을 걸지요 =ㅁ=
최대한 빠르게 동작해야 하니까요.
예전의 느린 컴퓨터에서는 시간을 줄이기 위한 최적화가 종종 이루어 졌습니다.
물론 요즘도 실행시간을 줄이기 위한 시도(암호깨기...)가 종종 이루어 지지만 말이지요.
추...추억의 286입니다 -_-;
저때만 해도 느린 컴퓨터 덕분에 시간 차원의 옵티마이즈가 필요했습니다.
http://retirno.pe.kr/117?srchid=BR1http%3A%2F%2Fretirno.pe.kr%2F117
소수판별법의 기본형입니다.
n의 데이터에 대해 최악의 경우 a의 시간이 걸리지요 -_-;
http://tblog.javaf.net/541?srchid=BR1http%3A%2F%2Ftblog.javaf.net%2F541
이건 소수판별법의 소규모 변형입니다.
합성수의 약수들이 루트n을 기준으로 좌우대칭형으로 존재하기 때문에
루트n까지만 조사하면 된다는 특성을 이용한 변형 알고리즘이지요.
그래도 필요한 시간복잡도는 루트n입니다.
http://dlbo.tistory.com/305
밀러-라빈 소수판별법이라는 확률론적인 소수판정법입니다.
n에 대해 k회의 소수판정을 실시했을때, n의 소수판정이 틀릴 확률은 2의 k승입니다.
n의 크기에 따라 (약 20 정도) 일반 소수판별보다 느릴 수 있으나,
수가 커지면 커질수록 매우 빠른 속도효율을 얻게 되지요.
대략 요런 느낌이랄까 =ㅁ=
이런 방식을 알고리즘 측면의 속도 옵티마이즈라 합니다.
그런데 코드가 난잡해져 읽기 힘들어지면,
아무래도 직장 상사한테 싸다구를
요걸로 후려맞겠죠 -_-;;
대표적인 예시를 보지요.
http://dlbo.tistory.com/196
트리 서밍 문제의 일반적인 해답 코드입니다.
그리고...
전설의 숏코더 cozy ozy(ozy4dm)의 gcc 코드입니다. -_-;;
이런 것을 맹목적인 속도 옵티마이즈라고 합니다.
알고리즘 차원에서도 옵티마이즈를 했으나,
코드의 가동속도를 최대한 끌어올리기 위해 온갖 변태짓을 해 실행해야 할 기계어 코드를
최대한 대폭 줄여버리는 것이지요.
아, 물론 이방법도 기계어코드를 직접 터치해버리는 방식에는 미치지 못하긴 합니다 =ㅁ=
그래도.
이렇게 했다간 상사한테 후들겨 맞기 좋답니다 -_-;
또 다른 최적화로써 메모리 공간의 옵티마이즈 방식이 있습니다.
http://zfanta.com/entry/for문-10000번-VS-노가다-타이핑-10000번
ㅋㅋㅋㅋㅋㅋ 환타님의 포스트입니다.
파일 크기의 문제도 발생하지만,
문제는 저 파일 내용을 고.대.로 메모리에 로드한다는것도 문제입니다.
이 경우는 컴파일러가 멍청(?)해서 생긴 경우지만,
좀 복잡한 코드가 될 경우 프로그래머가 직접 구조를 변경해 사용할 메모리를 줄여주어야 하지요.
메모리 사용량은 곧 전력소모와도 연결되기 때문에,
요즘 유행하는 임베디드 시스템에서의 '저전력' 설계와도 연관되게 됩니다.
한번에 최대한 적은 데이터가 이동하면서 모든 일을 처리해야 하는 형태이지요.
아무리 아이폰이 잘났어도 10초만에 꺼지면 눈물나겠지요? -_-;;
그렇다고 해서
요러시면 안됩니다 =ㅁ=;;
------------------------------------------------------------------------------------------------
크흠. 뭔가 글이 상당히 산만한거 같네요 ㄱ-
'(비정기) Dlbo's Post' 카테고리의 다른 글
프로그래밍이란? (4) | 2009.06.16 |
---|---|
Dlbo's Post 연기 공지. (0) | 2009.06.09 |
자유에는 그만큼의 책임이 따른다. (5) | 2009.05.26 |
Design Pattern & Network, 5. 간략한 UDP 서버. (2) | 2009.05.19 |
Dlbo's Post 연기 공지 (2) | 2009.04.25 |