|
|
|
DOA+DELPHI Чем больше потоков, тем дольше SetVariable
|
|||
|---|---|---|---|
|
#18+
В каждом потоке свои OracleSession и свои OracleQuery. Выполняется один и тот же запрос. Меняются только значения. Переменные запроса массивы (PL/SQL Table). Выполняю заполнение переменных SetVariable в одном потоке - время 1 сек, при 10 потоках 3 сек, при 20 - 10 сек и т.д. Если у меня все независимо, то почему растет время присвоения переменных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 11:53 |
|
||
|
DOA+DELPHI Чем больше потоков, тем дольше SetVariable
|
|||
|---|---|---|---|
|
#18+
cptngrbВ каждом потоке свои OracleSession и свои OracleQuery. Выполняется один и тот же запрос. Меняются только значения. Переменные запроса массивы (PL/SQL Table). Выполняю заполнение переменных SetVariable в одном потоке - время 1 сек, при 10 потоках 3 сек, при 20 - 10 сек и т.д. Если у меня все независимо, то почему растет время присвоения переменных?Нормальное масштабирование ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 13:48 |
|
||
|
DOA+DELPHI Чем больше потоков, тем дольше SetVariable
|
|||
|---|---|---|---|
|
#18+
cptngrbв одном потоке - время 1 сек, при 10 потоках 3 сек, при 20 - 10 сек а у вас правда есть 20 разных процессоров на этом компьютере ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 15:26 |
|
||
|
DOA+DELPHI Чем больше потоков, тем дольше SetVariable
|
|||
|---|---|---|---|
|
#18+
Arioch, не 20 процессоров, а 20 ядер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 15:30 |
|
||
|
DOA+DELPHI Чем больше потоков, тем дольше SetVariable
|
|||
|---|---|---|---|
|
#18+
asutp2, 16 точно есть) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 15:51 |
|
||
|
DOA+DELPHI Чем больше потоков, тем дольше SetVariable
|
|||
|---|---|---|---|
|
#18+
cptngrb, Менеджер памяти блокировочный. Каждый раз создавать/удалять кучу объектов плохо для него. Сделай пул коннекшенов с подготовленными запросами, и просто бери из него готовое. Только ExecQuery вызывай там и всё. Это как вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 23:18 |
|
||
|
DOA+DELPHI Чем больше потоков, тем дольше SetVariable
|
|||
|---|---|---|---|
|
#18+
YuRock, Конекция как и запрос создаются в конструкторе потока, а при заполнении только в первый раз выделяется большой памяти, так как размер массива не меняется. В исходниках doa в процедуре setvariable так я понял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2018, 07:48 |
|
||
|
DOA+DELPHI Чем больше потоков, тем дольше SetVariable
|
|||
|---|---|---|---|
|
#18+
cptngrb, ну если у тебя в потоках память не дергается - значит проблема не в этом. Но ты ж код потока не показываешь, т.ч. я не уверен. Может, тормозит какая-то синхронизация в doa, может - какая-то синхронизация в клиенте. И то и другое - вряд ли, но мало ли. Может, у тебя сервер настроен на работу на одном проце, мало ли. Я вот ночью бился над проблемой, почему запрос не возвращает записей, хотя они есть в базе. Оказалось все просто - записей и не было - я не к той базе коннектился, в которую смотрел. Все возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2018, 14:54 |
|
||
|
|

start [/forum/topic.php?fid=58&tid=2041224]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
167ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 269ms |
| total: | 518ms |

| 0 / 0 |
