Опитвам се да определя колко време отнема мрежовият пакет да пътува от Wireshark (който предполагам, че е доста близо до хардуера) до точката в моя код, в която извиквам ::QueryPerformanceCounter. Захващам в Wireshark неговото времево клеймо за пристигането на пакета, но не знам как да го сравня със стойността, върната от ::QueryPerformanceCounter.
Свържете времевия печат на Wireshark с върнатата стойност на ::QueryPerformanceCounter
comment
Броячите на производителност са само непрекъснато нарастващ брояч и не могат да бъдат свързани с времеви печат.
- person Some programmer dude   schedule 14.12.2011
comment
Това може би е вярно, но WinPcap (библиотеката, която е в основата на Wireshark) използва QueryPerformanceCounter, за да определи своите времеви отпечатъци, така че трябва да има начин да комбинирате резултата от QPC с друга стойност за сравнение.
- person endian   schedule 14.12.2011
comment
Може би бихте могли да погледнете изходния код на WinPcap, за да видите какво точно прави, за да получи клеймото за време и да направите същото?
- person NPE   schedule 14.12.2011
Отговори (1)
Можете да извикате QueryPerformanceFrequency, за да получите броя на отброяванията в секунда. Това означава, че ако имате две отчитания на броя, едно, когато Wireshark получи пакета, и второ, когато пакетът достигне вашия код, можете да ги извадите, за да получите брой преброявания, и след това да използвате честотата, за да получите времева продължителност. Обаче необработената стойност на брояча няма значение - тя има значение само когато се сравнява с друго отчитане на този брояч.
person
Puppy
schedule
14.12.2011
Тактовата честота на процесора може да се промени, така че не е надеждно да се използва за дълъг период от време.
- person Abyx; 14.12.2011
Благодаря. Не мисля, че мога да получа достъп до стойността на Wireshark/WinPcap за QueryPerformanceCounter. Времевият печат, който изглежда показва, е броят секунди от 1970 г., последван от стойност под секунда, изчислена чрез разлика в QueryPerformanceCounter. Ще трябва да помисля дали мога да изчисля същата стойност в моя код.
- person endian; 14.12.2011