C++Builder
Начало
Форум
Помощь
Войти
Регистрация
C++Builder
>
Forum
>
Вопросы программирования
>
Работа с базами данных в C++Builder
>
скорость вывода из Builder в Excel
Страниц: [
1
]
Вниз
Печать
Автор
Тема: скорость вывода из Builder в Excel (Прочитано 3145 раз)
forester
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 9
скорость вывода из Builder в Excel
«
:
27 Март 2015, 14:57:54 »
добрый всем!
столкнулся с кардинально разной, на порядок, скоростью вывода данных из аксессовской базы в excel. а кампутеры по железу примерно одного класса.
посмотрел, данные из аксесса селектятся быстро.
а в екселе выглядит так:
функция вывода условно говоря выглядит так:
range
merge
value
на одном аппарате выполнение выглядит так:
13:23:19.488->Стартую PushValue
13:23:19.500->Затрачено на Range 00:00:00.012
13:23:19.500->Затрачено на Merge00:00:00.000
13:23:19.502->Затрачено на вывод Value00:00:00.002
13:23:19.502->Финиширую PushValue, всего затрачено на вывод 00:00:00.014
на другом вообще засечь не успевает некоторых
13:23:33.122->Стартую PushValue
13:29:33.122->Затрачено на Range 00:00:00.000
13:29:33.122->Затрачено на Merge00:00:00.000
13:29:33.122->Затрачено на вывод Value00:00:00.000
13:29:33.122->Финиширую PushValue, всего затрачено на вывод 00:00:00.000
в какую сторону следует порыть и померять?
Записан
S0mbre
Глобальный модератор
Сказали спасибо: +1113/-22
Offline
Сообщений: 2132
S0mbre
Re: скорость вывода из Builder в Excel
«
Ответ #1 :
27 Март 2015, 15:26:21 »
Если речь идет про микросекунды (как показано), то это не кардинально разная скорость.
Условия для сравнения должны быть одинаковыми (ОС, железо, версия Excel).
Записан
forester
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 9
Re: скорость вывода из Builder в Excel
«
Ответ #2 :
30 Март 2015, 06:56:57 »
операционные системы примерно одинаковы - win xp prof.
процессоры, винты, оперативная память - примерно одного класса.
версии excel видимо да, разные.
собственно, смущает на порядок разная скорость вывода.
как можно измерить, в каком месте происходит торможение?
Записан
S0mbre
Глобальный модератор
Сказали спасибо: +1113/-22
Offline
Сообщений: 2132
S0mbre
Re: скорость вывода из Builder в Excel
«
Ответ #3 :
30 Март 2015, 07:13:36 »
Цитата: forester от 30 Март 2015, 06:56:57
операционные системы примерно одинаковы - win xp prof.
процессоры, винты, оперативная память - примерно одного класса.
версии excel видимо да, разные.
собственно, смущает на порядок разная скорость вывода.
как можно измерить, в каком месте происходит торможение?
Например, поставь точки останова и запускай в режиме отладки - увидишь, сколько времени проходит между точками.
Другой способ - внедри отметки в сам код, с выводом времени после выполнения каждой операции (можно, например, писать время в файл).
Записан
forester
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 9
Re: скорость вывода из Builder в Excel
«
Ответ #4 :
30 Март 2015, 07:31:19 »
собственно, я так и делаю - в первом в этой теме моём сообщении и показан вывод из файла ,в который трассировка и сбрасывается, кусочки с разных машин.
и вот вижу что операция Range по времени выполнения отличается.
и куда двигаться дальше? как пооптимизироваться?
Записан
S0mbre
Глобальный модератор
Сказали спасибо: +1113/-22
Offline
Сообщений: 2132
S0mbre
Re: скорость вывода из Builder в Excel
«
Ответ #5 :
30 Март 2015, 13:03:17 »
1. Можно подробнее - какой именно код используется для вызова функции Range? (Или имеется в виду свойство Range?)
2. Можно попробовать установить одинаковую версию Excel и потестировать. Наиболее вероятно, что отличие именно в разной версии Excel.
Записан
forester
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 9
Re: скорость вывода из Builder в Excel
«
Ответ #6 :
30 Март 2015, 13:41:44 »
1. делаю Range так vtmp = sheet.OlePropertyGet("Range", RC.c_str());
2. пока другую сторону трогать не хочется - таки начальство, далеко физически, и с администрированием там тяжко.
Записан
S0mbre
Глобальный модератор
Сказали спасибо: +1113/-22
Offline
Сообщений: 2132
S0mbre
Re: скорость вывода из Builder в Excel
«
Ответ #7 :
30 Март 2015, 15:39:45 »
Судя по виду вызываемого метода OlePropertyGet, у тебя довольно старая версия Билдера (6?) - в более новых версиях строковые аргументы имеют тип
WideString
и
wchar_t*
.
К сожалению, без тестирования в одинаковых условиях ничего оптимизировать не получится, т.к. задержка зависит от внутренней реализации OLE сервера Excel. Т.е. нет никакого способа извне повлиять на реализацию получения свойства
Range
.
Записан
forester
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 9
Re: скорость вывода из Builder в Excel
«
Ответ #8 :
13 Апрель 2015, 07:29:25 »
да, вы правы, у меня Билдер древний, 6.
попробовал на разных windows. на моём аппарате centrino, xp работает более-менее. на i5 win8 жуткие тормоза при выводе.
качаю триальный C++Builder XE8.
Записан
forester
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 9
Re: скорость вывода из Builder в Excel
«
Ответ #9 :
13 Апрель 2015, 14:25:47 »
кстати подскажите пожалуйста, как бороться с открытием проекта сделанного в builder6 в builderxe8?
скачал и штатно установил триал, при открытии проекта пишет "класс не зарегистрирован"
«
Последнее редактирование: 13 Апрель 2015, 14:30:52 от forester
»
Записан
S0mbre
Глобальный модератор
Сказали спасибо: +1113/-22
Offline
Сообщений: 2132
S0mbre
Re: скорость вывода из Builder в Excel
«
Ответ #10 :
15 Апрель 2015, 15:41:09 »
Цитата: forester от 13 Апрель 2015, 14:25:47
кстати подскажите пожалуйста, как бороться с открытием проекта сделанного в builder6 в builderxe8?
скачал и штатно установил триал, при открытии проекта пишет "класс не зарегистрирован"
Обычно так бывает, если в проекте есть сторонние или самописные компоненты. Если стандартный VCL проект (только со встроенными компонентами), то такого быть не должно по идее.
Записан
forester
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 9
Re: скорость вывода из Builder в Excel
«
Ответ #11 :
16 Апрель 2015, 14:31:24 »
builder enterprise, похоже лицензионный, специально ничего самодельного не ставилось.
сначала неустривал F8FEDD39-E3CE-4B8D-A657-9CA24686881F, лечится.
затем 1D7A3F34-1388-420D-932F-D16FBA1858A2 - как лечить не знаю, но что-то мне этот путь не нравится...
неужто придётся заново проект собирать, заново формируя bpr?
Записан
S0mbre
Глобальный модератор
Сказали спасибо: +1113/-22
Offline
Сообщений: 2132
S0mbre
Re: скорость вывода из Builder в Excel
«
Ответ #12 :
20 Апрель 2015, 12:29:38 »
Цитата: forester от 16 Апрель 2015, 14:31:24
неужто придётся заново проект собирать, заново формируя bpr?
Именно это я и делал несколько раз, когда апдейтил свои старые проекты с BCB6 на XE3.
Записан
Страниц: [
1
]
Вверх
Печать
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Вопросы программирования
-----------------------------
=> Общие вопросы программирования в C++Builder
=> Программирование с FMX
=> Работа с базами данных в C++Builder
=> Windows API
=> Технологии COM/DCOM, ActiveX
=> Аспекты и идеология профессиональной разработки ПО
=> Компьютерное железо и системное администрирование
=> студенческий городок
-----------------------------
Обсуждение материалов на сайте
-----------------------------
=> Обсуждений статей на сайте
=> Обсуждение материалов из файлового архива
=> Компоненты сторонних разработчиков к С++Builder
-----------------------------
Работа сайта и новости
-----------------------------
=> Ищу/предлагаю работу
=> Новости из мира программирования
=> Новости - события календаря
=> Голосования
=> Компьютерный юмор и приколы
=> Работа сайта
=> Флейм
-----------------------------
FAQ - частозадаваемые вопросы/ответы
-----------------------------
=> FAQ, общие вопросы, посвящённые C++Builder
=> FAQ, вопросы по базам данных
=> FAQ, вопросы по компонентам
Загружается...