적어도 1ms의 정확도를 가진 메시지를 보내는 데 얼마나 오래 걸리는지 알고 싶습니다. 어떻게해야합니까?iPhone에서 함수를 호출하는 데 걸리는 시간을 정확하게 측정하려면 어떻게합니까?
9
A
답변
12
는 여기에 내가 할 수있는 작업은 다음과 같습니다
NSDate * start = [NSDate date];
// do whatever I need to time
NSLog(@"time took: %f", -[start timeIntervalSinceNow]);
출력은 초에있을 것 (소수 부분). NSDate
의 정확도는 정확하지 않지만 밀리 초 단위로 측정됩니다.
시간을 기록하려는 코드가 너무 빠르면 코드를 100 번 실행하는 루프에 넣으십시오. (물론, 타이밍을 지정하는 코드에는 부작용이 없다고 가정합니다.)
15
나노초 단위로 측정하려면 mach_absolute_time
을 사용할 수 있습니다.
#import <mach/mach_time.h>
uint64_t startTime = 0;
uint64_t endTime = 0;
uint64_t elapsedTime = 0;
uint64_t elapsedTimeNano = 0;
mach_timebase_info_data_t timeBaseInfo;
mach_timebase_info(&timeBaseInfo);
startTime = mach_absolute_time();
//do something here
endTime = mach_absolute_time();
elapsedTime = endTime - startTime;
elapsedTimeNano = elapsedTime * timeBaseInfo.numer/timeBaseInfo.denom;
0
사용 dispatch_benchmark는 나노초 방법의 실행 시간을 기록합니다.
수동으로 반복 및 호출하는 것보다 훨씬 멋진 구문이 있습니다 mach_absolute_time() dispatch_benchmark는 Grand Central Dispatch의 일부입니다.
size_t const blockIterations = 1; //block call count
uint64_t t = dispatch_benchmark(blockIterations, ^{ //your code inside block
[self TEST_processJSONDataRecordsWithCompletionHandler:^(id handler) {}];
});
NSLog(@" Avg. Runtime in nanoseconds : %llu ns", t);
신용이 Benchmarking
로 이동 : 로그의 실행 시간을extern uint64_t dispatch_benchmark(size_t count, void (^block)(void));
내가 이것을 사용하고 있습니다 : 사용자가 직접 사용하기 전에 그렇게해야하므로이 기능은 공개적으로 선언되지 않았습니다
관련 문제
- 1. 이미지에서 거리를 측정하려면 어떻게합니까?
- 2. 함수를 실행하는 데 걸리는 시간 찾기
- 3. 페이지를로드하는 데 걸리는 시간을 찾는 방법
- 4. 다음 벤치마킹 데이터를 사용하여 응답 시간을 초 단위로 측정하려면 어떻게합니까?
- 5. Java 프로그램이 파일을 쓰거나 읽는 데 걸리는 시간을 정확하게 계산하는 방법은 무엇입니까?
- 6. 함수가 erlang 쉘에서 실행하는 데 걸리는 시간을 측정하는 방법은 무엇입니까?
- 7. 수학 연산을 수행하는 데 걸리는 시간을 찾는 방법은 무엇입니까?
- 8. 여러 iPhone에서 동시에 함수를 호출하는 방법은 무엇입니까?
- 9. 내 사이트에서 시험을 마치는 데 걸리는 시간을 제한하는 방법
- 10. 레일스 쿼리를 완료하는 데 걸리는 시간을 확인하는 방법
- 11. UDP를 통해 데이터를 보내는 데 걸리는 시간을 찾는 방법
- 12. 비주얼 스튜디오, 빌드하는 데 걸리는 시간을 출력하는 방법?
- 13. 모델을로드하는 데 걸리는 시간을 정확히 벤치마킹 할 수 있습니까?
- 14. 내 레이크 작업을 수행하는 데 걸리는 시간을 확인하는 방법
- 15. 자바 스크립트에서 페이지를 완전히로드하는 데 걸리는 시간을 예측하십시오.
- 16. IIS가 웹 페이지를 배달하는 데 걸리는 시간을 결정하는 방법은 무엇입니까?
- 17. WebClient.DownloadData()가 완료되는 데 걸리는 시간을 감지하는 방법?
- 18. Winforms 폼이 나타나는 데 걸리는 시간을 측정 할 수 있습니까?
- 19. 시스템이 완전히 부팅되는 데 걸리는 시간을 결정하는 방법은 무엇입니까?
- 20. jquery에서 마스크 함수를 호출하는 데 문제가 있습니까?
- 21. 정확하게 실행 시간을 측정하는 방법 (1ms 미만)
- 22. 올바른 함수를 호출하는 다형성
- 23. 문서 너비에 맞는 문자 수를 측정하려면 어떻게합니까?
- 24. 단위 테스트를 통해 상대적 성능을 측정하려면 어떻게합니까?
- 25. 함수가 걸리는 시간을 측정하는 방법이 있습니까?
- 26. iPhone에서 서버에서 호출하는 파이썬 함수
- 27. JS에서 함수를 호출하는 함수를 찾으시겠습니까?
- 28. 배치 파일을 실행하는 데 걸리는 시간은 얼마나됩니까?
- 29. 남은 (정확하게) 다운로드 시간을 예측하는 방법은 무엇입니까?
- 30. 함수를 호출하는 방법
이것이 내가 실행하는 것입니다. 병목 현상 만 신경 쓰고 있기 때문에 너무 빠르다면 개인적으로 신경 쓰지 않아도됩니다. =) – migs647