Поскольку никто еще не ответил, я подумал, что смогу опубликовать свои собственные выводы после того, как задал вопрос.Я до сих пор не понял, как измерить, сколько времени потребовалось от изменения внешнего вида визуального элемента до его отображения на экране.
Чтобы рассчитать загрузку ЦП в вашем приложении, вы можете использовать класс аналитики ..Чтобы вычислить частоту кадров, просто подключите статическое событие рендеринга класса CompositionTarget.
private DispatcherTimer fpsTimer = new DispatcherTimer();
private DateTime lastFpsUpdate;
private Analytics analyzer = new System.Windows.Analytics();
private int frameCount;
public MyClass()
{
fpsTimer.Interval = TimeSpan.FromSeconds(1);
fpsTimer.Tick += new EventHandler(fpsTimer_Tick);
fpsTimer.Start();
lastFpsUpdate = DateTime.Now;
CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering);
}
// Called every second
void fpsTimer_Tick(object sender, EventArgs e)
{
double framerate = 0;
framerate = frameCount / (DateTime.Now - lastFpsUpdate).TotalSeconds;
c_statusMessage.Text = String.Format("Framerate: {0:0} fps, CPU utilization: {1:0.0}%", framerate, analyzer.AverageProcessLoad);
lastFpsUpdate = DateTime.Now;
frameCount = 0;
}
// Called by the framework on every frame
void CompositionTarget_Rendering(object sender, EventArgs e)
{
frameCount++;
}