Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DOA+DELPHI Чем больше потоков, тем дольше SetVariable / 9 сообщений из 9, страница 1 из 1
16.02.2018, 11:53
    #39602852
cptngrb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DOA+DELPHI Чем больше потоков, тем дольше SetVariable
В каждом потоке свои OracleSession и свои OracleQuery. Выполняется один и тот же запрос. Меняются только значения. Переменные запроса массивы (PL/SQL Table). Выполняю заполнение переменных SetVariable в одном потоке - время 1 сек, при 10 потоках 3 сек, при 20 - 10 сек и т.д. Если у меня все независимо, то почему растет время присвоения переменных?
...
Рейтинг: 0 / 0
16.02.2018, 13:48
    #39602956
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DOA+DELPHI Чем больше потоков, тем дольше SetVariable
cptngrbВ каждом потоке свои OracleSession и свои OracleQuery. Выполняется один и тот же запрос. Меняются только значения. Переменные запроса массивы (PL/SQL Table). Выполняю заполнение переменных SetVariable в одном потоке - время 1 сек, при 10 потоках 3 сек, при 20 - 10 сек и т.д. Если у меня все независимо, то почему растет время присвоения переменных?Нормальное масштабирование
...
Рейтинг: 0 / 0
16.02.2018, 15:26
    #39603072
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DOA+DELPHI Чем больше потоков, тем дольше SetVariable
cptngrbв одном потоке - время 1 сек, при 10 потоках 3 сек, при 20 - 10 сек

а у вас правда есть 20 разных процессоров на этом компьютере ?
...
Рейтинг: 0 / 0
16.02.2018, 15:30
    #39603081
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DOA+DELPHI Чем больше потоков, тем дольше SetVariable
Arioch,

не 20 процессоров, а 20 ядер
...
Рейтинг: 0 / 0
16.02.2018, 15:51
    #39603121
cptngrb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DOA+DELPHI Чем больше потоков, тем дольше SetVariable
asutp2, 16 точно есть)
...
Рейтинг: 0 / 0
16.02.2018, 23:18
    #39603369
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DOA+DELPHI Чем больше потоков, тем дольше SetVariable
cptngrb,

Менеджер памяти блокировочный. Каждый раз создавать/удалять кучу объектов плохо для него. Сделай пул коннекшенов с подготовленными запросами, и просто бери из него готовое. Только ExecQuery вызывай там и всё.
Это как вариант.
...
Рейтинг: 0 / 0
17.02.2018, 07:48
    #39603408
cptngrb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DOA+DELPHI Чем больше потоков, тем дольше SetVariable
YuRock,

Конекция как и запрос создаются в конструкторе потока, а при заполнении только в первый раз выделяется большой памяти, так как размер массива не меняется. В исходниках doa в процедуре setvariable так я понял
...
Рейтинг: 0 / 0
17.02.2018, 14:54
    #39603470
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DOA+DELPHI Чем больше потоков, тем дольше SetVariable
cptngrb,

ну если у тебя в потоках память не дергается - значит проблема не в этом. Но ты ж код потока не показываешь, т.ч. я не уверен.
Может, тормозит какая-то синхронизация в doa, может - какая-то синхронизация в клиенте. И то и другое - вряд ли, но мало ли.
Может, у тебя сервер настроен на работу на одном проце, мало ли.
Я вот ночью бился над проблемой, почему запрос не возвращает записей, хотя они есть в базе. Оказалось все просто - записей и не было - я не к той базе коннектился, в которую смотрел. Все возможно.
...
Рейтинг: 0 / 0
17.02.2018, 17:54
    #39603518
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DOA+DELPHI Чем больше потоков, тем дольше SetVariable
YuRockя не к той базе коннектился,Очень распространенная проблема
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DOA+DELPHI Чем больше потоков, тем дольше SetVariable / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]