#ifdefined(WEBRTC_WIN) // clang-format off #include <windows.h> // Must come first. #include <mmsystem.h> // clang-format on #endif
namespace webrtc { namespace {
// Noop on all platforms except Windows, where it turns on high precision // multimedia timers which increases the precision of TimeMillis() while in // scope. class EnableHighResTimers { public: #if !defined(WEBRTC_WIN)
EnableHighResTimers() {} #else
EnableHighResTimers() : enabled_(timeBeginPeriod(1) == TIMERR_NOERROR) {}
~EnableHighResTimers() { if (enabled_)
timeEndPeriod(1);
}
private: constbool enabled_; #endif
};
} // namespace
// This task needs to be run manually due to the slowness of some of our bots. // TODO(tommi): Can we run this on the perf bots?
TEST(TaskQueueTest, DISABLED_PostDelayedHighRes) {
EnableHighResTimers high_res_scope;
uint32_t start = TimeMillis();
queue.PostDelayedTask(
[&event, &queue] {
EXPECT_TRUE(queue.IsCurrent());
event.Set();
},
TimeDelta::Millis(3));
EXPECT_TRUE(event.Wait(TimeDelta::Seconds(1)));
uint32_t end = TimeMillis(); // These tests are a little relaxed due to how "powerful" our test bots can // be. Most recently we've seen windows bots fire the callback after 94-99ms, // which is why we have a little bit of leeway backwards as well.
EXPECT_GE(end - start, 3u);
EXPECT_NEAR(end - start, 3, 3u);
}
} // namespace webrtc
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-08-22)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.