2014-06-19 2 views
0

getaddrinfo() API를 사용하여 크로스 플랫폼 C++ 응용 프로그램에서 DNS 쿼리를 해결하고 있습니다. 다른 플랫폼에서 getaddrinfo()의 시간 비용을 알아야합니까? 아무도 이것에 나를 도울 수 있습니까?getaddrinfo()의 시간 비용은 얼마입니까?

+1

주소, 위임 계층 구조가 얼마나 깊은 지, 모든 네임 서버에 대한 네트워크 대기 시간, 서버 속도, 중간 데이터가 캐시되는지 여부 등은 주소에 따라 다릅니다. 이에 대한 간단한 대답은 없습니다. – Barmar

+1

용어를 잘못 사용하고 있습니다. '시간 복잡도'는 알고리즘의 분석에서 나온 용어이며 그 결과는 'Big-O'표기법으로 표현됩니다. 당신이 요구하는 것은 성능입니다. * 시간 단위로 측정되었습니다. – EJP

+0

예, 성능에 대해 묻습니다. –

답변

3

이 함수는 내부에서 복잡한 계산을 수행하지 않으므로 알고리즘이 복잡하지 않습니다. 당신이 사용하고있는 시스템/플랫폼에서 측정을하고 이것에 기대를 두는 것이 가장 좋습니다.

결과는 사용자의 네트워크에 따라 크게 달라질 수 있습니다. 느린 전화 접속 연결을 가진 시스템을 상상해보십시오. 속도는 동일한 LAN에있는 고속 LAN 및 DNS 서버와 공통점이 없습니다.

+1

맞습니다. 사실이 함수의 평균 시간 소비를 알고 싶었습니다. –

+0

직접 측정 해보십시오. 이것은 당신이 할 수있는 최선입니다. 이에 대한 공개 정보가 없습니다. –

+1

문제는 내가 지금 모든 플랫폼을 지원하지 않는다는 것입니다. 코드를 설계해야하며 현재 Linux 및 Windows에서 테스트를 수행 할 수 있습니다. 그러나이 기능의 시간 복잡성을 알 수 있다면 그것은 나에게 더 좋을 수있었습니다. –

관련 문제