У меня есть несколько xaml-файлов, которые я использую во всем приложении. Я хочу написать модульные тесты для проверки производительности каждого файла xaml, другими словами, сколько времени потребуется для загрузки/разбора и отображения одного из окон (которые используют определенные файлы xaml).Каков наилучший способ измерения производительности/обработки синтаксиса xaml
Я нашел класс XamlReader, который (я думаю) делает именно это. Тем не менее, я знаю, что Application.LoadComponent()
(в System.Windows) также можно использовать для подобных вещей. Если вам нужно было проверить, сколько времени требуется для анализа всего XML-документа, что бы вы использовали? XamlReader.Load()
/XamlReader.Parse()
или Application.LoadComponent()
, или что-то совсем другое? Что было бы лучшим способом в этом сценарии?
Кроме того, поскольку у меня мало опыта в программном тестировании, что является хорошим способом измерения времени загрузки, будет ли класс секундомера из System.Diagnostics подходящим?
Вы испортите много вещей в вашем вопросе. Для создания и тестирования окна вы используете baml (xaml + cs). 'XmlReader' выполняет только часть работы, большинство из которых создает объекты и события проводки. Вы не используете единицу тестовой производительности, но используете профилировщик для существующего приложения. «StopWatch» идеально подходит для измерения многих итераций критически важного кода. – Sinatr
Благодарим вас за комментарий. Итак, если я хочу только проверить, как быстро создаются xaml-объекты из кода xaml, достаточно XamlReader и его методы? – Mefhisto1
См. [Свободный xaml] (http://wpf.2000things.com/2010/10/22/102-using-xamlreader-to-load-a-loose-xaml-file/) и [baml] (http://stackoverflow.com/q/634121/1997232) (в противоположность). Я не совсем понимаю, какую производительность вы измеряете. Это архитектурная проблема, если ваши xamls медленно загружаются (возможно, вы загружаете слишком много ресурсов для загрузки или делаете многое при создании экземпляра в окне). – Sinatr