Q&A

  • for 와 while
for 하고 while do { break } 중 어느것이 최적화에 유리한가요?

전 break가 익숙하지 않아 거의 사용하지 않는데 가끔 소스코드절약에 공헌을 하는 느낌입니다. 만약 break가 유리하다면 습관을 바꾸어보려구여..

3  COMMENTS
  • Profile
    무명 2000.07.06 20:32
    한상훈 wrote:

    > for 하고 while do { break } 중 어느것이 최적화에 유리한가요?

    > 전 break가 익숙하지 않아 거의 사용하지 않는데 가끔 소스코드절약에 공헌을 하는 느낌입니다. 만약 break가 유리하다면 습관을 바꾸어보려구여..



    둘중 어떤것이 최적인지 구분하는것은 의미없다고 생각합니다.

    델파이의 최적화 기술은 항상 같은 결과코드를 만들지 않으니까요...

    경우에따라 필요한것을 사용할줄 아는게 중요하다고 봅니다.

  • Profile
    문홍철 2000.07.06 21:00
    무명 wrote:

    > 한상훈 wrote:

    > > for 하고 while do { break } 중 어느것이 최적화에 유리한가요?

    > > 전 break가 익숙하지 않아 거의 사용하지 않는데 가끔 소스코드절약에 공헌을 하는 느낌입니다. 만약 break가 유리하다면 습관을 바꾸어보려구여..

    >

    > 둘중 어떤것이 최적인지 구분하는것은 의미없다고 생각합니다.

    > 델파이의 최적화 기술은 항상 같은 결과코드를 만들지 않으니까요...

    > 경우에따라 필요한것을 사용할줄 아는게 중요하다고 봅니다.



    어디서 보았는데

    for문이 우월하다고 함,

    파스칼도 적용이 되는지 모름..

    그러나 무명씨의 말에 동감함



    ps:

    이것도 어디서 보았는데

    스트링의 경우 s1 := s2 + '--' + s3

    보다 s1 := format('%s--%s', [s2, s3]) 가

    낮다고 함 믿거나 말거나... ^.*

  • Profile
    이경문 2000.07.07 00:48
    var

    i: Integer;

    begin

    for i := 1 to 10 do

    ShowMessage('count');

    end;



    다음과 같은 경우 i변수를 Trace해 보면 알겠지만

    i는 1부터 10까지 카운트되는 것이 아니라 반대로 카운트됩니다.

    어셈블이에서 카운트로 cx나 ecx 레지스터를 쓰는 것과 이치가 같지요.

    델파이도 최적화에서는 C컴파일러 못지않게 해 주는 부분이 많습니다.

    이론적으로 for문에 while보다 빠른 것은 맞지만

    요즘은 이런것보다가 네트워크나 그래픽처리에 많은 부분에 신경을 쓰시는 것이 효율적입니다.



    참고 :

    function Max(a, b: Integer): Integer;

    begin

    if a < b then

    Result := b

    else

    Result := a;

    end;



    function Max2(a, b: Integer): Integer;

    begin

    Result := a;

    if a < b then

    Result := b;

    end;

    위 부분중 어느 것이 빠를까요? Max2함수가 빠릅니다.

    Max1같은 경우에는 참이던 거짓이던간에 분기명령이 포함되므로 이론상 Max2보다 늦게 됩니다. 그래도 그 차이는 극히 미비하지요.

    • jody
    • 2000.07.06 20:37
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 한상훈
    • 2000.07.06 20:13
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 무명
      2000.07.06 20:32
      한상훈 wrote: > for 하고 while do { break } 중 어느것이 최적화에 유리한가요? > 전 break가 익숙하지...
    • 문홍철
      2000.07.06 21:00
      무명 wrote: > 한상훈 wrote: > > for 하고 while do { break } 중 어느것이 최적화에 유리한가요? > > ...
    • 이경문
      2000.07.07 00:48
      var i: Integer; begin for i := 1 to 10 do ShowMessage('count'); end; 다음과 같은 경...
    • 전기봉
    • 2000.07.06 20:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 어린왕자
      2000.07.06 22:24
      안녕하세요..델초보 어린왕자입니다.. 저두 이거 며칠전에 사용했는데.. 음.. 질문이 쫌 애매(?)한거 같...
    • 조유정
    • 2000.07.06 19:45
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 사발우성
      2000.07.06 20:46
      헐...best of best 초보 사발임당...^^ 제가 지난번에 한 질문 하구 비슷한거 같아서리.... procedur...
    • k
      2000.07.06 19:57
      조유정 wrote: > 쿼리문에서 강제적으로 데이타를 변환하는 방법이 있을까요??? > 예를 들어 '3' 미만이...
    • 문홍철
      2000.07.06 21:11
      k wrote: > 조유정 wrote: > > 쿼리문에서 강제적으로 데이타를 변환하는 방법이 있을까요??? > > 예를 ...
    • k
      2000.07.06 19:59
      이병웅 wrote: > 고수님들 안녕하신지요... > > 제가 만든 프로그램을 런타임 라이브러리를 사용해서 ...
    • 배움이
      2000.07.06 20:59
      델처버 wrote: > 언어가 아무리 강력해도 디버깅이 힘들면 정말 쓰기 불편합니다. > > 디버깅에 대해서...
    • dumgi
    • 2000.07.06 19:04
    • 0 COMMENTS
    • /
    • 0 LIKES
    • ladymoon
    • 2000.07.06 18:43
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 강인규
      2000.07.06 22:36
      단순히 한개의 테이블만을 불러오셨다면 Insert가 됩니다. (select * from dbname.db) Query의 Requestli...
    • 유레카
      2000.07.06 19:04
      쿼리 컴포넌트랑 연결된 디비그리드에서 Insert나 Update를 직접할 수는 없는 걸로 알고 있습니다. Table...
    • 질문자
    • 2000.07.06 18:18
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 어린왕자
      2000.07.06 22:28
      질문자 wrote: > 패널위에 스트링그리드위에 콤보박스가 있고 > 그 콤보박스를 드롭다운시킨 뒤 마우스 ...
    • 초급자
    • 2000.07.06 17:29
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최석기
      2000.07.06 19:35
      초급자 wrote: > 델파이로 인트라넷을 구축 하려 할때 > > 보통 어떤 식으로 구현되나요 ? > > 예를...
    • SerVing
      2000.07.07 04:52
      그냥 Close하니까 되던데요.... ㅡ__ㅡ;; 델파이에 있는 smtp프로그램과 chat프로그램(version 4.0에 있...
    • 조규춘
      2000.07.06 14:30
      아리엘 wrote: > 문제가 클라이언트쪽에서 연결을 끈을려고 하는데 자꾸 에러가 나요... > ClientSocket...
    • 어린왕자
      2000.07.06 18:48
      진짜 왕초보 wrote: > ms-access 2000으로 작업한 *.mdb 파일을 delphi로 어떻게 불러들여야 하는지 모르...
    • 이경문
      2000.07.06 17:57
      ODBC설정에서 해당하는 mdb 화일을 Alias로 설정해 주고 델파이에서 Database를 그쪽으로 선택해 주시면 ...
    • 최용일
      2000.07.06 11:04
      안녕하세요. 최용일입니다. IPersistFile인테페이스의 Save가 저장하는 거고 Load메소드가 불러오는 것...
    • 헬프미
      2000.07.06 10:49
      최용일 wrote: > 안녕하세요. 최용일입니다. > > 아래 답변했는데요... > > ^^ 용일님 답변 고...
    • 문홍철
      2000.07.06 20:45
      MMSYSTEMxxx Error.. 몇가지를 체크해보세요.. System.ini 파일에서 'MCI' 그룹에서 MPEGVideo 값...
    • 전대협
      2000.07.06 23:02
      문홍철 wrote: > MMSYSTEMxxx Error.. > 몇가지를 체크해보세요.. > > System.ini 파일에서 'MCI' 그...
    • 문홍철
      2000.07.07 00:35
      > HKEY_LOCAL_MACHINE key안에는 > > SystemCurrentControlSetControlMediaResourcesmciMPEGVideo2나 >...
    • 전대협
      2000.07.07 01:50
      문홍철 wrote: > > HKEY_LOCAL_MACHINE key안에는 > > > > SystemCurrentControlSetControlMediaResour...
    • 조규춘
      2000.07.06 08:37
      전대협 wrote: > 안녕하세요. 전 델파이를 공부하면서 프로그램을 하는 델파이 초보 프로그래머입니다. >...
    • 전대협
      2000.07.06 09:10
      조규춘 wrote: > 전대협 wrote: > > 안녕하세요. 전 델파이를 공부하면서 프로그램을 하는 델파이 초보 ...
    • 조규춘
      2000.07.06 09:30
      전대협 wrote: > 조규춘 wrote: > > 전대협 wrote: > > > 안녕하세요. 전 델파이를 공부하면서 프로그램...
    • 조규춘
      2000.07.06 08:42
      헬프미2 wrote: > 아직 사용을 잘 안해봐서 모르겠는데요? > 인스톨 쉴드에 다른 setup 실행화일이 있을 ...
    • 헬프미2
      2000.07.07 22:14
      조규춘 wrote: > 헬프미2 wrote: > > 아직 사용을 잘 안해봐서 모르겠는데요? > > 인스톨 쉴드에 다른 s...