프로그래밍 for루프에 대해서 궁금한점있어요
- 글쓴이
- 남자의꿈
- 등록일
- 2014-05-22 22:51
- 조회
- 6,535회
- 추천
- 0건
- 댓글
- 8건
관련링크
책에 'for루프는 유용하지만 간략하고 빠른코드의 작성에 관심이 있는 유능한 프로그래머들은 가능한 for루프의 사용을 피하려고 한다.' 라고 되어있는데 구체적으로 어떤 루프를 사용해야 더 간략하고 빠른코드를 작성할수있다는건지 그리고 실제로 프로그래밍 하시는분들의 의견을 듣고싶어요~
다른 사람들 의견
-
남자78
()
for 루프는 특정 변수를 특정 횟수만큼 반복해서 돌릴 때 쓰는 것이지 않나요? 프로그래머들이 피하려고 한다는 방법이라는 것은 아마도 조건문을 구현할때 for를 무한루프로 돌리다가 특정 키값이나 이벤트를 받았을때 for루프를 종료시키는 방법이 아닐지요?
C언어에서서는 if() 나 switch() 함수를 쓰면 될텐데 그에 대응하는 매트랩 함수가 어떤 것인지는 모르겠네요. -
bittersweet
()
프로그래밍 전반에 관한 얘기인지 matlab에 한정적인 얘기인지는 모르겠는데 matlab에서는 matrix연산을 이용하면 for문없이 한번에 연산하는게 가능하죠.
예를들자면 1~10까지의 값을 제곱하여 저장하는 프로그램을 만든다면 C는 아래와 같이 for문을 10번 돌아야만 합니다.
for(i=0;i<10;i++) y[i]=x*x;
반대로 매트랩은 아래와 같이 for문 없이 matrix연산으로 바로 y값을 구할수 있죠
x=[1:10]; y=x.^2; -
앗살라말리꿈
()
일반적인 프로그래밍에서 for 루프와 같은 명령을 회피하는게 좋다는건 간략한 4X4 행렬과 같은 간략한 array는 for 루프보다 un-rolling을 통해서
A(1,1) = v11 ; A(1:2) = v12 ... A(4,4) = v44와 같이 직접 풀어서 기재하는게 좋다는걸 의미합니다.
참고로 google에서 프로그래밍에서의 un-rolling과 rolling에 관해서 검색해보면 더욱 세부 내용을 찾을 수 있습니다. -
빨간거미
()
빠른 코드에서 '빠른'이 무엇이 빠르다는 의미인지 궁금하네요.
연산속도가 빠를리는 없을텐데...
코딩이 빠르고 간편하다는 의미 아닌가요? -
cchem
()
연산 속도가 영향을 줍니다. 제 경험으로는 요즈음은 컴파일러 수준에서 거의 비슷한 속도를 보여 주는 것으로 알 고 있습니다.
-
bittersweet
()
빠르다는건 사용자가 C코딩이후 컴파일 결과의 어셈블리 코드의 라인수가 짧으면 연산속도가 빠른겁니다. 동일한 clock 스피드로 CPU가 시간당 처리할수있는 인스트럭션의 수는 정해져있으니 어셈 코드가 짧게나오게 C코딩하는게 중요합니다.
-
aeropo
()
앗살라말리꿈 님께서도 언급하셨는데 아마 loop unrolling에 관한 내용이 아닐까 하네요.
pipeline depth가 깊어지니 branch prediction miss가 났을 때의 overhead가 커지므로(pipeline을 flush해야 하니까..), branch를 줄여보자...는 테크닉입니다. -
xxcxcv
()
대형 방정식을 구성할 때... 예를 들면 FEA를 구현하다보면 뭔말인지 느낌이 확 오실겁니다.