|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.02.2014, 21:52 | #1 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Оптимизация по памяти
Добрый Вечер.
Прошу помощи.. Есть задачка : тыц Она на буржуйском (при необходимости переведу) Написал код, он валится на 5 тесте Memory limit exceeded Основная фишка - это динамические массивы и иже с ними.. Код:
Мои идеи.. 1) Я где-то накосячил с удалением памяти.. 2) Наверное, где-то идет копирование массивов(при увеличении длины).. И из-за этого едим много памяти.. Спасибо! Удачи!) |
07.02.2014, 22:32 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А что за задача?
У меня не валится если я по тупому ввожу две цифры через пробел. Задачу озвучь, ато я на тот сайт выйтить не могу чет.
I'm learning to live...
|
07.02.2014, 22:35 | #3 | |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Цитата:
|
|
07.02.2014, 22:51 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Ромаха, по коду без проблема. По памяти видимо из-за динамических массивов - любой SetLength отводит новую память для массива и копирует из старого. Попробуй GetMem и соответственно аккуратненько FreeMem для структуры значений примерно в таком виде
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 07.02.2014 в 23:03. |
08.02.2014, 06:20 | #5 | |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Цитата:
Спасибо! Попробую |
|
09.02.2014, 14:52 | #6 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Уже 10 тест.. Снова по памяти..
Код:
|
09.02.2014, 17:58 | #7 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
Представь себе худший из возможных кейсов - 100000 пушей в разные стеки.
Лимит памяти - 750 килобайт. Следовательно, можно использовать 7 байт на одну операцию. Как ты думаешь, на сколько больше памяти съедят все эти линкедлисты? |
09.02.2014, 18:01 | #8 | |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Цитата:
Хорошо.. Идеи? Динамический массив не прошел, т.к. он каждый раз копирует массив, не убирая память.. Списки тоже.. |
|
09.02.2014, 18:44 | #9 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
Первая "идея" - не выделять новый блок памяти на каждый пуш. Потому что behind the scenes гетмем забирает еще несколько байт для своих внутренних нужд.
|
09.02.2014, 18:46 | #10 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Хорошо.. Но все равно худший вариант не пройдет..
Нужно как-то отказываться от указателей.. (наверное).. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Оптимизация по памяти алгоритма пойска k-той статистики (Язык C) | PathTheir | Помощь студентам | 2 | 02.04.2014 23:48 |
Оптимизация памяти | winhttp | C# (си шарп) | 1 | 09.09.2012 09:54 |
Кольцевая очередь на массиве в статической памяти с элементами в динамической памяти | ]tach[ | Общие вопросы C/C++ | 1 | 19.01.2011 13:16 |
...оптимизация памяти... вопрос.... | maxvip | Операционные системы общие вопросы | 5 | 12.01.2010 15:17 |
Оптимизация использования оперативной памяти | Lkhasa | Общие вопросы Delphi | 4 | 04.07.2008 15:22 |