Size: a a a

2020 April 03

ВБ

Владимир Б. in Delphi & Lazarus
George Bakhtadze
ну нормальная формулировка тогда :)
смотри логи, дампы и т.п. с машины, где валится при вменяемом кол-ве потоков. может с потоками никак не связано
Ну от пользователя:

main thread ($1330), inner exception level 2:
>> EThread, Thread creation error: Недостаточно памяти для обработки команды

main thread ($1330), inner exception level 1:
>> EAccessViolation, Access violation at address 0099A8D6 in module 'CCC.exe'. Read of address 00000010
источник

ВБ

Владимир Б. in Delphi & Lazarus
это отчёт с MadExcept
источник

ВБ

Владимир Б. in Delphi & Lazarus
но собственно вопрос как этого избежать
источник

DB

Dmitry Belkevich in Delphi & Lazarus
а, ну если если есть отчет - то проще конечно
источник

DB

Dmitry Belkevich in Delphi & Lazarus
избежать просто: 64х в помощь
источник

DB

Dmitry Belkevich in Delphi & Lazarus
всё остальное - полумеры разной степени
источник

DB

Dmitry Belkevich in Delphi & Lazarus
можно вот стек попробовать покрутить. но сложно сказать насколько поможет
источник

GB

George Bakhtadze in Delphi & Lazarus
Владимир Б.
но собственно вопрос как этого избежать
сперва надо понять какой именно памяти ему недостаточно
источник

DB

Dmitry Belkevich in Delphi & Lazarus
ну так там 32х, что тут гадать? ) обычный oom мне кажется
источник

DB

Dmitry Belkevich in Delphi & Lazarus
at address 0099A8D6 - 32x
источник

AS

Alexey Shumkin in Delphi & Lazarus
Dmitry Belkevich
избежать просто: 64х в помощь
+
источник

AS

Alexey Shumkin in Delphi & Lazarus
Владимир Б.
но собственно вопрос как этого избежать
Может, там утечки памяти?
источник

ВБ

Владимир Б. in Delphi & Lazarus
А есть ли какой-то способ создавать поток не выделяя сразу ему память и т.д.? Ну то-есть чтоб BeginThread не запускался изначально?
источник

ВБ

Владимир Б. in Delphi & Lazarus
или это всё-равно не поможет?
источник

RS

Renat Suleymanov in Delphi & Lazarus
Владимир Б.
А есть ли какой-то способ создавать поток не выделяя сразу ему память и т.д.? Ну то-есть чтоб BeginThread не запускался изначально?
Я выше писал, что можно попробовать запускать с меньшим стеком, выделяемым под один поток
источник

ВБ

Владимир Б. in Delphi & Lazarus
Renat Suleymanov
Я выше писал, что можно попробовать запускать с меньшим стеком, выделяемым под один поток
а как стек расчитать?
источник

AS

Alexey Shumkin in Delphi & Lazarus
Владимир Б.
А есть ли какой-то способ создавать поток не выделяя сразу ему память и т.д.? Ну то-есть чтоб BeginThread не запускался изначально?
Есть :)) не создавать поток :)
Но если у тебя не хватает памяти на 20 потоков, то дело явно не в потоках
источник

AS

Alexey Shumkin in Delphi & Lazarus
Владимир Б.
или это всё-равно не поможет?
Это симптом, но не причина... Ищи причину
источник

RS

Renat Suleymanov in Delphi & Lazarus
Владимир Б.
а как стек расчитать?
Не знаю. Для чего у тебя стек в потоках используется? Что созается.ю какие переменные, экземпляры, массивы
источник

ВБ

Владимир Б. in Delphi & Lazarus
Renat Suleymanov
Не знаю. Для чего у тебя стек в потоках используется? Что созается.ю какие переменные, экземпляры, массивы
да, вот это вот всё в разных количествах
источник