|
1 / 1 / 0
Регистрация: 09.11.2012
Сообщений: 57
|
||||||
Освобождение памяти вложенных массивов13.06.2019, 13:48. Показов 5401. Ответов 43
Метки нет (Все метки)
Добрый день.
Есть код вида:
0
|
||||||
| 13.06.2019, 13:48 | |
|
Ответы с готовыми решениями:
43
TList и освобождение памяти Освобождение памяти при выходе из программы
|
|
Почетный модератор
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
|
|
| 13.06.2019, 14:00 | |
|
Все динамические массивы уничтожаются сами по окончании программы. Если массив очень большой и Вам это надо, можете написать a:=nil;
1
|
|
|
1 / 1 / 0
Регистрация: 09.11.2012
Сообщений: 57
|
|
| 13.06.2019, 14:07 [ТС] | |
|
0
|
|
|
|
|
| 13.06.2019, 14:23 | |
|
Можно прочитать статью: Блог GunSmoker-а: Ищем утечки памяти - и проверить самому.
Подключите FastMM, настройте информирование, проверьте оба варианта освобождения.
0
|
|
|
1 / 1 / 0
Регистрация: 09.11.2012
Сообщений: 57
|
|
| 13.06.2019, 14:28 [ТС] | |
|
0
|
|
|
|
|
| 13.06.2019, 14:31 | |
|
хороший тон - ВСЕГДА освобождать то что ты сам выделял
несмотря на то, что по умолчанию компилятор добавит скрытый код зато это сильно поможет впоследствии в разборе старого кода другим людям или даже самому себе
1
|
|
|
1 / 1 / 0
Регистрация: 09.11.2012
Сообщений: 57
|
||
| 13.06.2019, 14:35 [ТС] | ||
|
0
|
||
|
|
||
| 13.06.2019, 16:25 | ||
|
Только вдруг у вас Делфи5 какая-нибудь? Я с пятой не работал, вполне допускаю, что там может оказаться не так как в текущей. Проще и быстрее проверить. А ещё проще и эффективнее - последовать совету krapotkin'а.
0
|
||
|
1 / 1 / 0
Регистрация: 09.11.2012
Сообщений: 57
|
||
| 13.06.2019, 16:43 [ТС] | ||
|
А по совету - ну так я и спросил для того чтобы правильно освободить память
0
|
||
|
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
|
||
| 14.06.2019, 02:26 | ||
|
И не надо смотреть на версию! Береженого бог бережет. А все прочие идут лесом на север.
0
|
||
|
Житель Земли
|
||||||||||||
| 18.06.2019, 15:58 | ||||||||||||
1
|
||||||||||||
|
1 / 1 / 0
Регистрация: 09.11.2012
Сообщений: 57
|
|
| 18.06.2019, 17:41 [ТС] | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 09.11.2012
Сообщений: 57
|
|
| 19.06.2019, 04:16 [ТС] | |
|
@Fil а зачем ты переместил тему в дельфи для начинающих, если никто из про не смог ответить полностью на вопрос до сих пор?
Добавлено через 2 минуты я и дальше вброшу - судя по ру и англо-форумам при обнулении динамического массива (рекорда точнее), память не освобождается, а резервируется и используется потом вторично
0
|
|
|
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
|
||||
| 19.06.2019, 04:26 | ||||
|
0
|
||||
|
1 / 1 / 0
Регистрация: 09.11.2012
Сообщений: 57
|
||
| 19.06.2019, 04:35 [ТС] | ||
|
по памяти - у меня прога на серваке работает 24/7 соответственно если правильно не освобождать память, то рано или поздно она повиснет. По завершению прога сама все освобождает, тут дело касается работе непрерывно год, например Тут у дельфи есть особенности. Поэтому и спросил. А дальше к twebbrowser перейдем, который за 15 лет в плане утечки памяти так и не починили). Сейчас очень важно знать как для серверной проги очистить память, ответов подтвержденных фактами пока в теме не было, я лично сначала обнуляю вложенные массивы, а потом основной, но это какой то идиотизм
0
|
||
|
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
|
|||||
| 19.06.2019, 04:41 | |||||
|
0
|
|||||
|
Модератор
|
||
| 19.06.2019, 04:42 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 09.11.2012
Сообщений: 57
|
|
| 19.06.2019, 04:58 [ТС] | |
|
"Ну так поставьте свою программу, пусть покрутится недельку на сервере, да посмотрите, что произойдет." я уже отдал заказчику. Но мне самому стало любопытно и поднял эту тему. Я думаю не нужно тебе говорить, что ты не сможешь написать строчку типа var s: array[0..1000000] of string, там память кусками распределяется, а если еще и вложенные массивы, то я вот хрен знает что там. Уважаемый коллега только что еще одну версию кинул, но это версия (и на мой взгляд не рабочая, но я проверю), а не решение
по twebrowser - а что есть другой вариант обходить скриптовые защиты? Хроминиум разве что, но на него нет вообще никакой документации, с прогой надо мегов 60-100 библиотек прикладывать и он вешает комп не меньше чем эта хрень под ie) Больше браузерных вариантов нет вообще
0
|
|
|
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
|
||||
| 19.06.2019, 05:52 | ||||
|
0
|
||||
|
1 / 1 / 0
Регистрация: 09.11.2012
Сообщений: 57
|
|
| 19.06.2019, 07:52 [ТС] | |
|
"учитывая мой опыт работы с этим компонентом (конечно, не берусь говорить, что я тут 100% прав), но он косячен до нереальности, с постоянными ошибками обработок скриптов и т.д. Но остается вопрос: а зачем обходить скриптовую защиту в вашей программе?"
ну я пишу в основном парсеры. На некоторых сайтах ставятся скриптовые куки, а бюджет не позволяет тратить несколько дней на разбор скриптов, поэтому там twebbrowser, а точнее емембед подходит, иначе вообще никак не получится. Но он жрет память и доходит до идиотизма, когда при переполнении фигачишь в ини где остановился, запускаешь вторую прогу, грохаешь процесс, а прога запускает опять твою основную) я правда нашел последнее возможное решение и если лень не будет, то потом попробую и тут сделаю перевод довольно интересной схемы, если она сработает И кроме дикой косячности, плюсы даже для начала разработки там есть, например, нормально, в отличие от браузера перехватывается снифферами
0
|
|
| 19.06.2019, 07:52 | |
|
Помогаю со студенческими работами здесь
20
Освобождение памяти после закрытие данных в Делфи Освобождение памяти Освобождение памяти Pchar и освобождение памяти Освобождение памяти от объектов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|