Проблемы экспорта

Проблемы экспорта
Atom
3/18/2012


Появилась потребность экспорта тиков в текстовый формат для загрузки в Amibroker.
Использовал версию гидры 4.0.22
Обнаружил такие проблемы и неточности.
1) Солюшн не собирается из-за постбилда плагина Plaza. Не находит какой-то файл. Мне не надо. Отключил.
2) Экспорт не возможен без загрузки данных в грид. Это косяк, потому что на большое количество строк грид памяти жрёт немеряно.
Нет информации об окончании экспорта, кроме отвисания формы. Поправил. И то, и другое и зависание. Раз доступ мне не дали, берите файлы отсюда.
TradesWindow.rar 3 KB (220)

Tags:


Thanks:


< 1 2 3 4  >
VassilSanych

Avatar
Date: 3/22/2012
Reply


Это где я писал про производительность?
Был не прав. Мой косяк.
Thanks:

VassilSanych

Avatar
Date: 3/22/2012
Reply


Метод Read работает.
Но сути это в целом не меняет.
Память как жралась, так и жрётся (может быть меньше на самую малость).
Проблема скорее всего в методе вывода в файл. Профайлером памяти не мерял ещё.
Свой код оттестирую, выложу - сами посмотрите.
Thanks:

VassilSanych

Avatar
Date: 3/22/2012
Reply


Выложил.

Заодно поймал ошибку экспорта в эксель:
слишком много строк для XLS (больше 65000).
XLSX поддерживает гораздо больше строк.
Но всё-равно проблему наверное стоит решать дроблением файлов.
Thanks:

Mikhail Sukhov

Avatar
Date: 3/22/2012
Reply


VassilSanych Go to
XLSX поддерживает гораздо больше строк.
Но всё-равно проблему наверное стоит решать дроблением файлов.


Раньше использовался коммерческий компонент. Сейчас он не используется, а используется NPOI. Может быть попробовать новые версии http://code.google.com/p/npoi/ ? Вышла какая-то, правда в бета режиме.
Thanks:

VassilSanych

Avatar
Date: 3/22/2012
Reply


Выложил изменение:
Ограничил количество данных, выгружаемых в XLS, как и количество данных отображаемых в списке.
Если кому надо, делайте дробление / пейджинг.
А так хоть работает стабильно.
Thanks:

Alexander

Avatar
Date: 3/22/2012
Reply


Mikhail Sukhov Go to
VassilSanych Go to
XLSX поддерживает гораздо больше строк.
Но всё-равно проблему наверное стоит решать дроблением файлов.


Раньше использовался коммерческий компонент. Сейчас он не используется, а используется NPOI. Может быть попробовать новые версии http://code.google.com/p/npoi/ ? Вышла какая-то, правда в бета режиме.


не надо. я обновлял, полезли ворнинги. от npoi зависит другой компонент ещё
Thanks:

VassilSanych

Avatar
Date: 3/23/2012
Reply


VassilSanych Go to

Память как жралась, так и жрётся (может быть меньше на самую малость).
Проблема скорее всего в методе вывода в файл.

В общем так оно и есть.
Запустил профилировщик памяти на данных RI за 2 дня (снапшот за 3 дня в оперативке не помещается), остановил после минуты работы.
См. memory.png
До кучи запустил профилировщик времени на тех же данных, но дождался окончания работы (работает очень медленно)
См. time.png
Видимо используется слишком сложная библиотека форматирования по шаблону, предназначенная не столько для больших объёмов, сколько для сложной структуры данных.
memory.png 236 KB (160) time.png 414 KB (176)
Thanks:

Mikhail Sukhov

Avatar
Date: 3/23/2012
Reply


VassilSanych Go to

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


Согласен. Я экспортирую все в ручную, если требуется. Но для универсальности решил взять StringTemplate. Может есть какие-то другие альтернативы?
Thanks:

VassilSanych

Avatar
Date: 3/23/2012
Reply


Переделал для себя экспорт в текст через библиотеку SmartFormat.
Память не жрёт. Работает в несколько раз быстрее.
Нада?
Thanks:

Mikhail Sukhov

Avatar
Date: 3/23/2012
Reply


VassilSanych Go to
Переделал для себя экспорт в текст через библиотеку SmartFormat.
Память не жрёт. Работает в несколько раз быстрее.
Нада?


https://github.com/scottrippey/SmartFormat/wiki Это? Давайте. Только можно ее под 4.0 перекомпилировать, чтобы не было предупреждений компилятора.
Thanks:
< 1 2 3 4  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy