Быстрая загрузка серии для Chart

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Аватара пользователя
VAshot
постоялец
Сообщения: 128
Зарегистрирован: 01.11.2007 11:31:21
Откуда: Пермь

Быстрая загрузка серии для Chart

Сообщение VAshot »

Есть файл (примерно 30000-200000) строк (пар чисел). Надо построить график по этим точкам.
При чтении из файла (обычном или через SdfDataSet) и заполнении TAreaSeries этот процесс весьма не быстр.
И что печальнее, он идет с отрицательным ускорением...
Вопрос: можно ли ускорить загрузку?
(В момент заполнения, Series не связана с Chart)
Аватара пользователя
Сергей Смирнов
энтузиаст
Сообщения: 595
Зарегистрирован: 28.04.2005 13:23:25
Откуда: Москва
Контактная информация:

Сообщение Сергей Смирнов »

А есть примерчик готовый?
Аватара пользователя
VAshot
постоялец
Сообщения: 128
Зарегистрирован: 01.11.2007 11:31:21
Откуда: Пермь

Сообщение VAshot »

Мне кажеться это долго. на данный файл уходит в среднем 20 сек.
Но файл может быть и в три-пять раз больше...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
VAshot
постоялец
Сообщения: 128
Зарегистрирован: 01.11.2007 11:31:21
Откуда: Пермь

Сообщение VAshot »

Ни у кого нет мыслей по этому поводу?
(компонент memdataset тоже замедляются при заполнении).
Ни уже ли это так должно быть?
Аватара пользователя
Сергей Смирнов
энтузиаст
Сообщения: 595
Зарегистрирован: 28.04.2005 13:23:25
Откуда: Москва
Контактная информация:

Сообщение Сергей Смирнов »

VAshot писал(а):Ни у кого нет мыслей по этому поводу?
(компонент memdataset тоже замедляются при заполнении).
Ни уже ли это так должно быть?
Мысли-то есть... Там, скорее всего, используются MemoryStream-ы, которые очень тормозят при увеличении размера, т.к. происходит перевыделение памяти и, соответственно, копирование старого содержимого в новый буфер. Если увеличить Capacity стримов (или чего там на самом деле использовано), то ценой некоторого излишнего расхода памяти можно повысить скорость на порядок.
Ask
постоялец
Сообщения: 163
Зарегистрирован: 25.12.2008 02:51:37

Сообщение Ask »

Должно быть исправлено в SVN. Однако, ускорение будет только в том случае, если точки добавляются в порядке увеличения координаты X.
Ответить