Вверх ↑
Этот топик читают: Гость
Ответов: 96
Рейтинг: 1
#1: 2010-10-24 11:47:33 ЛС | профиль | цитата
Помогите со схемой. При загрузке и отрисовке массива более 1000 чисел на графике программа сильно тормозит и зависает. Мне надо отрисовать 100000 точек

code_21217.txt
карма: 0

0
файлы: 1code_21217.txt [1006B] [182]
Ответов: 8926
Рейтинг: 823
#2: 2010-10-24 12:39:39 ЛС | профиль | цитата
301992, тормозит перебор строк из СпискаСтрок: code_21218.txt
карма: 19

0
файлы: 1code_21218.txt [3KB] [146]
Ответов: 96
Рейтинг: 1
#3: 2010-10-24 13:27:49 ЛС | профиль | цитата
А как сделать, тчобы график строился по точкам из сохраненного текстового файла? У меня одна формирует этот список и сохраняет в файл, а эта должна отрисовать график по точкам из этого файла
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#4: 2010-10-24 13:36:26 ЛС | профиль | цитата
сохранять данные не в текстовом, а бинарном виде и использовать PlotStream
карма: 27
0
Ответов: 8926
Рейтинг: 823
#5: 2010-10-24 13:55:06 ЛС | профиль | цитата
301992, или открывать Ваш текстовой файл через Integer-, RealArray code_21219.txt
карма: 19

0
файлы: 1code_21219.txt [1.5KB] [180]
Ответов: 96
Рейтинг: 1
#6: 2010-10-24 15:48:49 ЛС | профиль | цитата
Спасибо за ответы, буду думать. ТОлько пример code_21219.txt не отрисовывает график. После нажатия кнопки меняються подписи по осям, а самого графика не видно
карма: 0

0
Ответов: 8926
Рейтинг: 823
#7: 2010-10-24 16:59:30 ЛС | профиль | цитата
301992, я сформировал файл с 100000 записей integer от -99 до +99 и массив integer, а тип файла - String, может у Вас данные в файле Real
карма: 19

0
файлы: 1graf.jpg [67.9KB] [220]
Ответов: 96
Рейтинг: 1
#8: 2010-10-24 17:16:54 ЛС | профиль | цитата
У Вас числа целые или дробные? У меня дробные типа:
1
-0.0625
0.078125
0.0625
0.0625
-0.015625
0.03125
-0.0625
...
и т.д.
когда стоит Real, формируються только целые числа.
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#9: 2010-10-24 17:29:03 ЛС | профиль | цитата
301992 писал(а):
У Вас числа целые или дробные?

Integer это целое знаковое
карма: 27
0
Ответов: 8926
Рейтинг: 823
#10: 2010-10-24 18:09:54 ЛС | профиль | цитата
301992,
Ну Леонид же писал(а):
открывать Ваш текстовой файл через Integer-, RealArray


Add(RealArray,15713005,189,224)
{
RealArray=[]
FileFormat=1
}

карма: 19

0
Ответов: 96
Рейтинг: 1
#11: 2010-10-27 17:39:59 ЛС | профиль | цитата
Dilma, а как сохранять в бинарный файл, так чтобы потом другая программа могла считать информацию.
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#12: 2010-10-27 17:43:39 ЛС | профиль | цитата
301992 писал(а):
а как сохранять в бинарный файл, так чтобы потом другая программа могла считать информацию.

на этот вопрос невозможно ответить не зная того, в каком формате "другая программа" ожидает эти самые данные принять
карма: 27
0
Ответов: 96
Рейтинг: 1
#13: 2010-10-27 18:15:53 ЛС | профиль | цитата
Вот эта схема производит вычисление и сохраняет в текстовые файлы. При количестве строк 100000 программа выполняется в течении 16 часов. Результат выполнения для данного случая 128 текстовых файла. Из того, что написано выше я думаю, что так долго выполняется програма из-за компонента "список строк", но я не знаю, как без него обойтись. Или я заблуждаюсь и проблема в другом.



code_21274.txt
карма: 0

0
файлы: 1code_21274.txt [8.4KB] [255]
Администрация
Ответов: 15295
Рейтинг: 1519
#14: 2010-10-27 18:40:32 ЛС | профиль | цитата
301992 писал(а):
Из того, что написано выше я думаю, что так долго выполняется програма из-за компонента "список строк", но я не знаю, как без него обойтись.

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

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

ввиду вышеизложенного есть очень большие сомнения по поводу вывода о недостаточной производительности списка строк в предложенном примере
карма: 27
0
14
Сообщение
...
Прикрепленные файлы
(файлы не залиты)