|
|
|
Зависает форма при работе потока по рисовании на Image после тысяч итераций.
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)1. динамический массив при ресайзе сначала создаёт новый блок, а потом, скопировав, удаляет существующий следовательно память таким макаром можно использовать где-то 2/3 от макс - т.е. желательно её сразу задать нужного размера 2. память освободится "автоматически" после удаления объекта-владельца динамического массива, но никто не запрещает это сделать вручную в любое время через SetLength(..., 0) или ... :=nil PS: у потока нет "своей памяти", он использует память процессаwhite_niggerМогу добавить что при при общем дохуа памяти, она может быть сильно фрагментирована и непрерывного куска нужного размера может не быть. Т.е. свободен гигабайт, а выделить под мемори стрим 200Мб может не получитьсяВасилий 2Если элементы невелики, а размеры большие, придется осваивать распределенные массивы. Ничего сложного, просто блоки определенного размера, объединенные под капотом записи с методами доступа, которая будет пересчитывать общий индекс в индекс блока и индекс элемента. Если элементы большие, то можно распределять их динамически, а в массиве хранить указатели Ясно, спасибо, пошел думать и изучать. Всё как всегда сложнее, чем на первый взгляд казалось. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2019, 18:05 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39838431&tid=2039245]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
19ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 279ms |

| 0 / 0 |
