메뉴
해결 M365윈도우10

속도측정 2개 동일해야 하는데 달라요

G
9월 10일 조회 3,461
Public Sub MeasureMacroSpeed1()
  Dim startTime As Single
  Dim endTime As Single

  startTime = Timer  ' 시작 시간 측정
  
  Range("A2", "J2").Value = Range("A1", "J1").Value
  
  endTime = Timer  ' 종료 시간 측정
  MsgBox "매크로 실행 시간: " & Format(endTime - startTime, "0.00000") & " 초"

End Sub


Public Sub MeasureMacroSpeed2()
  Dim startTime As Single
  Dim endTime As Single

  startTime = Timer  ' 시작 시간 측정
  
  Range("A11", "J11").Value = Range("A10", "J10").Value
  
  endTime = Timer  ' 종료 시간 측정
  MsgBox "매크로 실행 시간: " & Format(endTime - startTime, "0.00000") & " 초"

End Sub




윗줄 A~J 숫자를 아랫줄에 그대로 받아 복사입력하는 매크로. 그걸 속도측정함.

위 속도측정 2개는 동일해야 합니다. 왜냐? 모든 요소가 동일.

그런데 2번째가 더 길게 나옵니다.  2번쩨 속도측정은  A~J 에 숫자를 받는 건 동일하지만, 오른쪽에 그걸 재계산하는 K행이 더 있어요.

그렇다해도 이 K행 과정은 속도측정 안에는 포함되지 않앗어요. 그러므로 속도측정 2개는 동일해야 합니다.

그런데 더 길게 나와요.

이유가 뭘까요?
  • 속도측정은 [ 컴마다, 시간 때마다, 다르게 시간이 측정됩니다. 서로 동일한 측정이라도요 ] 라는 답변 하지 말아주세요.  제가 10000번은 해봣어요. 여기 올린 파일은 제가 질문할려고 예제 파일 만들어 올린거구요. 실제 파일은 엄청난  복잡계산 10분정도 걸리는게 있습니다. 그런데 위와 같은 .... K행이 잇다고 달라지는 경우가 정말 많았구요... 가 아니라  10000번 하면 10000번 정확하게 길어집니다. 정말 길어져요. 10분 걸리던게 20분 걸리고 그래요. 확실히 차이가 나요. 그러므로 [ 컴마다, 시간 때마다, 다르게 시간이 측정됩니다. 서로 동일한 측정이라도요 ] 답변 하지 말아주시면 감사합니다.

댓글 8

마
마법의손 9월 10일
이벤트와 계산을 중지시킨후 처리하세요
G
GEEM 작성자 9월 10일
@마법의손 님 그렇다면.. 속도측정도... 다른 데에서 실행하는 이벤트까지 여기 속도에 포함이 되버린다는 말씀이신가요?
그렇다면 속도측정의 의미가 전혀 없어져 버리는데요. 지금까지 제가 알고 있던 모든 Timer 측정은 가짜, 결국 Timer 속도측정은 하나마나라는 결론이 되버리는데요. 
마
마법의손 채택된 답변 9월 10일
@GEEM 님 chatGPT의 답변입니다.
G
GEEM 작성자 9월 10일
@마법의손 님 와~ 이런 숨은 의미가 있었다니... 정말 엑셀은 알다가도 모르겠네요. 제가 알고 있던 속도측정에도 정말 단순하지가 않은 여러 성격이 있었네요. 오늘 또 하나 배우고 갑니다.  정말 감사드립니다. 
원
원조백수 9월 10일
G
GEEM 작성자 9월 10일
@원조백수 님 정말 감사드립니다. 보내주신 마소 글을 정독하겠습니다. 
더
더블유에이 9월 10일
음.. 외람된 답변이나 질문 주신 것과 같이 모든 상황에 정확한 속도 측정값이 필요한 상황인가요 아니면 최적화 목적인가요?
상황을 알면 더 좋을 것 같습니다만.. 실행속도는 상황마다 다 다르게 측정되기 때문에 보통 어느정도로 동작하는지 참고할 때만 사용하는게 좋습니다
G
GEEM 작성자 9월 10일
@더블유에이 님 안녕하세요. 최적화목적입니다. 속도를 좀 더 빠르게 할려고 Timer 로 속도를 재는데요. 속도측정값은 필요업고 단지 측정용으로만 씁니다. 코드속에 함수/배열 등을 쓸때마다 빠른게 있고 느린게 잇더라구요.

질문답변 게시판의 최근 글

스크랩 완료