User Tag List

Показано с 1 по 6 из 6

Тема: 4 Out of memory. Или куда уходит память на 48K???

  1. #1

    Регистрация
    01.03.2021
    Адрес
    г. Омск
    Сообщений
    7
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Question 4 Out of memory. Или куда уходит память на 48K???

    Привет, друзья. Прошу помощи.
    Без предысторий причин, сразу к сути.
    Написал программу на basic для 48K - генерация случайного идеального лабиринта (и дальнейшее его прохождение) (алгоритм здесь, кому интересно).
    Ячейка лабиринта - одно знакоместо на экране.
    Всё это дело "управляется" 8-ю символьными массивами, описывающими состояние ячейки (вид ячейки, посещена или нет, координаты "отката", наличие выхода С-Ю-В-З) и десятком вспомогательных символьных переменных.
    Вся программа основана на операторах IF...THEN.
    Зациклив генерацию (пропуская прохождение), приблизительно на 12 круге (при максимальном размере лабиринта 21x32 символа) вываливается ошибка Out of memory.
    Вопрос. Куда уходит память? На вычисления (как это узнать вообще)? Можно ли как-то "почистить" её на новом круге генерации, не затрагивая значения вспомогательных символьных переменных?
    В архиве листинг программы TEST.b82 (просмотр и редактирование - блокнот, открытие - эмулятор EightyOne), .tap и .sna (сэйв на 12 круге).
    Изначально большинство переменных были числовые, но тогда память кончалась еще раньше.
    Генерация ну оооочень медленная (в частности из-за функции VAL перевода символов в число). В Spectaculator при 14 МГц и на скорости 20x генерация одного максимального лабиринта занимает около 20 секунд.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	TEST.jpg 
Просмотров:	169 
Размер:	73.6 Кб 
ID:	74822  
    Вложения Вложения
    • Тип файла: zip TEST.zip (13.0 Кб, Просмотров: 124)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,289
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    202
    Спасибо Благодарностей получено 
    1,456
    Поблагодарили
    946 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от yazhivoy Посмотреть сообщение
    вываливается ошибка Out of memory. Вопрос. Куда уходит память?
    что такое стек - знаешь ?
    в программе явно есть ошибка. стек лихо ползёт вниз.
    у тебя похоже выход из gosub без return (вот адреса возврата и скапливаются на стеке)
    Последний раз редактировалось goodboy; 01.03.2021 в 18:21.

    Этот пользователь поблагодарил goodboy за это полезное сообщение:

    yazhivoy(01.03.2021)

  4. #3

    Регистрация
    01.03.2021
    Адрес
    г. Омск
    Сообщений
    7
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    у тебя похоже выход из gosub без return
    спасибо! да, есть там такой грешок. попробую поправить. стек - не знаю. знания на уровне кружка информатики 90-х

  5. #4

    Регистрация
    16.08.2005
    Адрес
    Estonia,Tallinn
    Сообщений
    1,131
    Спасибо Благодарностей отдано 
    55
    Спасибо Благодарностей получено 
    257
    Поблагодарили
    195 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    рекурсия наверное слишком глубокая гдет

  6. #5

    Регистрация
    01.03.2021
    Адрес
    г. Омск
    Сообщений
    7
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    goodboy, поправил выходы из go sub. ошибка ушла! спасибо еще раз!

  7. #6

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,289
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    202
    Спасибо Благодарностей получено 
    1,456
    Поблагодарили
    946 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    на будущее попробуй пакет basin http://arda.kisafilm.org/fish/get/se...ip&d=14&s=9709
    там внешний редактор бейсика + эмулятор.
    во время выполнения программы можно много всего мониторить
    .......................
    как раз хорошо видно (твой случай) как накапливаются адреса возврата
    Последний раз редактировалось goodboy; 01.03.2021 в 20:11.

    Этот пользователь поблагодарил goodboy за это полезное сообщение:

    yazhivoy(02.03.2021)

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Atari 130XE/65XE memory upgrade 1MB (4bit memory chips)
    от dkamenski в разделе Atari
    Ответов: 15
    Последнее: 12.01.2016, 16:20
  2. Conver Commander v3.02R: память Scorpion или KAY...
    от SoftFelix в разделе Софт
    Ответов: 4
    Последнее: 09.03.2012, 13:50
  3. Contended memory /Медленная память/ на Original Speccy
    от MadCat! в разделе Программирование
    Ответов: 15
    Последнее: 05.03.2005, 11:18

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •