|
|
|
Зависает форма при работе потока по рисовании на 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&gotonew=1&tid=2039245]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
176ms |
get topic data: |
10ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 480ms |

| 0 / 0 |
