Как Вы диагностируете проблемы UI WPF?

Расположение упаковки и байт, как описано в C FAQ здесь :

Это для выравнивания. Многие процессоры не могут получить доступ к 2- и 4-байтным количествам (например, ints и long ints), если они переполнены каждым способом.

Предположим, что у вас есть эта структура:

struct {
    char a[3];
    short int b;
    long int c;
    char d[3];
};

Теперь вы можете подумать, что это возможно, чтобы упаковать эту структуру в память следующим образом:

+-------+-------+-------+-------+
|           a           |   b   |
+-------+-------+-------+-------+
|   b   |           c           |
+-------+-------+-------+-------+
|   c   |           d           |
+-------+-------+-------+-------+

Но на процессоре намного проще, если компилятор упорядочивает его как это:

+-------+-------+-------+
|           a           |
+-------+-------+-------+
|       b       |
+-------+-------+-------+-------+
|               c               |
+-------+-------+-------+-------+
|           d           |
+-------+-------+-------+

В упакованной версии обратите внимание на то, что вам и мне, как минимум, немного сложно понять, как обтекают поля b и c? В двух словах, это тоже сложно для процессора. Поэтому большинство компиляторов будут заполнять структуру (как будто с дополнительными невидимыми полями) следующим образом:

+-------+-------+-------+-------+
|           a           | pad1  |
+-------+-------+-------+-------+
|       b       |     pad2      |
+-------+-------+-------+-------+
|               c               |
+-------+-------+-------+-------+
|           d           | pad3  |
+-------+-------+-------+-------+
blockquote>

10
задан palehorse 19 September 2008 в 18:26
поделиться

5 ответов

Попытайтесь удалить безграничное поведение своего окна и посмотрите, помогает ли это. Кроме того, Вы - BeginInvoke () 'луг или Вызываете () 'луг какие-либо длительные операции?

Другая вещь посмотреть на: при вторжении в код попытайтесь смотреть на потоки кроме основного потока. Один из них может блокировать поток UI.

5
ответ дан 3 December 2019 в 19:36
поделиться

Один большой инструмент является Ищейкой. Действительно хороший для взгляда на то, какие объекты WPF отображены на визуальном дереве в установленный срок. Я не уверен, какому количеству это поможет, но возможно, что Вы создаете затор поток UI с большим количеством дополнительных вещей, которые это должно сделать. Ищейка может помогать Вам разыскать то, что находится на экране для давания Вам общее представление, что искать.

4
ответ дан 3 December 2019 в 19:36
поделиться

Я удалил безграничное поведение, как предложил Bob King. До настоящего времени это, кажется, избавилось от проблемы.

Теперь вопрос, почему и как я могу устранить проблему? Продукт разработан, чтобы не иметь никакой границы с некоторыми скругленными углами и прозрачными частями.

4
ответ дан 3 December 2019 в 19:36
поделиться

Ваше приложение WPF могло зависать из-за проблем производительности. Попытайтесь использовать Перфоратор, чтобы видеть, есть ли у Вас какие-либо части, которые являются представленным программным обеспечением или если Вы приложение используете слишком много видеопамяти.

6
ответ дан 3 December 2019 в 19:36
поделиться

Ура, ... похоже, проблема не связана с окнами без полей (по крайней мере, в моем случае).

При установке производительность сильно падает. Позволяет прозрачности иметь значение true. Может показаться, что все это может привести к зависанию потока пользовательского интерфейса. Очень странное поведение. Может быть связано с этот билет

1
ответ дан 3 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: