Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
8 / 8 / 1
Регистрация: 16.02.2011
Сообщений: 161

Стандартные средства построения диаграмм в C# начинают виснуть после 1000 точек

01.08.2013, 15:14. Показов 4183. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. В общем у меня есть основные диаграммы, но только одна отображается на экране. Эта диаграмма заполняется не быстрее 1 секунды. Диаграмму можно растягивать или фиксировать её интервал представления (Например между 600 и 700 точками). По оси х - у меня время в секундах, по у - само собой свои данные.
К тому же есть функция фиксации, в котором представляется возможность рассматривать таблицу в режиме паузы детально, но главная диаграмма всё равно заполняется.
Я бы не писал всего этого, т.к. это мало кого волнует, и по существу маловажно. Но вдруг где-то тут ключевая зацепка.

В итоге у меня это дело начинает виснуть после 700 точек. Где-то слышал, что используя сторонние компоненты построения диаграмм, добивались ажжжжж 16000... Я не знаю как быть. Пробовал с Invalidate(). Может я что-то не так делаю? Виснуть начинает всё предельно прогрессируя к сдвижению. При этом пробовал отключать всякие встроенные функции типа сглаживания и тп. Комп нагружается не сильно, но при фиксации и просмотре этого чуда, он нагружается довольно ощутимо.

Подскажите, пожалуйста, может есть какой-то способ не удаляя старые точки, т.к. нужна история, прибегнуть к лучшей производительности? А если и нет, то подскажите другие компоненты. И если возможно ссылку. Заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.08.2013, 15:14
Ответы с готовыми решениями:

Графические средства построения множества точек, вектора, прямой (на одном рисунке)
Собственно вопрос в том какими средствами на одном рисунке (координатная плоскость) отобразить множество точек, вектор(ы) (или хотя бы...

Стандартные средства логгирования
Вот такой каверзный вопрос у меня затесался. Сам я далек от администрированияю, но вот появился такой какие есть стандартные средства...

Стандартные средства диагностики производительности
Здравствуйте! Задали написать реферат на тему: Стандартные средства диагностики производительности операционной системы windows xp (vista,...

23
39 / 37 / 8
Регистрация: 01.08.2013
Сообщений: 106
03.08.2013, 09:12
Студворк — интернет-сервис помощи студентам
Нашёл какие то исходники, правда не уверен, что последние были: Projects.7z.
Цитата Сообщение от sptes Посмотреть сообщение
Хорошо. Главное, что теперь время в такт с графиком идёт. Это просто замечательно)

Добавлено через 16 часов 51 минуту
А разве chart нельзя отдать на выполнение видеокарте? Ну не знаю, как-то неразумно же использовать ресурсы процессора для построение графических элементов?
Использование DirectX и OpenGL ? =)
0
8 / 8 / 1
Регистрация: 16.02.2011
Сообщений: 161
03.08.2013, 09:20  [ТС]
Ну да, но как?)

Добавлено через 6 минут
Я даже не знаю как запретить chart'у обновлять автоматически. При перехвате события отрисовки и invalidate, он попросту не даёт возможность отменить прорисовку.
0
8 / 8 / 1
Регистрация: 16.02.2011
Сообщений: 161
04.08.2013, 22:37  [ТС]
onicdr, к сожалению это не то . Больше нету?

Добавлено через 47 минут
А как отменить отрисовку диаграммы? Что-то я не пойму. Вы не знаете?
0
8 / 8 / 1
Регистрация: 16.02.2011
Сообщений: 161
08.08.2013, 16:10  [ТС]
ТЕМУ МОЖНО ЗАКРЫВАТЬ!
Проблему можно решить частично: Во-первых, при большем количестве точек в графике, программа пытается отрисовать их все, попутно сжимая. Если не хотим такого эффекта, строим алгоритм удаления одинаковых точек в ряд, когда их достигает скажем больше 10-ти.

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

Теперь решение побочных проблем: виснет после 3х тысяч и тп - в режиме, когда на экране выходит только часть диаграммы, было принято каждый раз удалять точки и выводить их заново. Благо для 100 точек и, скажем до 400 - это вполне быстродейственно, хоть и не совсем корректно. (При отображении общего графика происходит заставка в виде "Загрузка! Пожалуйста, ждите..." и в этот момент программа загружает график, перехватывая управление графика в отдельный поток")

Заполнение точек было принято держать в отдельном потоке, и, т.к. если напрямую перехватыват график, то будет конфликт потоков, создал структуру с X,Y, POSITION.

Что-то типа этого:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    public struct GraphicPoint
    {
        public int[] X;
        public int[] Y;
        public int position;
        public GraphicPoint(string nulled)
        {
            position = 0;
            //  2,000,000
            X = new int[2000000];
            Y = new int[2000000];
        }
 
        public void Clear()
        {
            Array.Clear(X, 0, X.Length);
            Array.Clear(Y, 0, Y.Length);
            position = 0;
        }
    }
Добавлено через 12 минут
Не каждый раз удалять, а при переполнении разрешённого объёма))*
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.08.2013, 16:10

Стандартные средства генерации отчетов JavaFX
Здравствуйте, подскажите, имеются ли в Java/JavaFX стандартные средства генерации отчетов?

Стандартные средства для генерации комбинаций
Возник вопрос нет ли каких то стандартных средств для следующего: def forever(c): while True: for i in range(len(c)): ...

Стандартные средства в лучшей CMS Joomla
Здравствуйте. Есть вопрос- нужна на главной странице сайта выводить новости. То есть превью. Что бы выводилось половина текста статьи и...

Мастер построения диаграмм. ( С# )
Мастер построения диаграмм. ( С# ) На вкладках мастера задаются исходные данные, типа диаграммы ( столбчатая, круговая, пузырьковая,...

Программа построения диаграмм
Всем доброго времени суток, прошу помочь срочно нужна программа в дельфи построение диаграмм


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru