Помимо
могу добавить, что
,
а, если строка или массив становится короче (например, let a$=""), то память освобождается.
- - - Добавлено - - -
Это круто сэкономит память - переменная for занимает в памяти 19 байт. Вообще, почитай про струкруру всякого в BASIC'е вот тут ("Формат хранения текста программы на Бейсике", совсем немного, но доступно, там же и про переменные). Поймешь что сколько байт занимает и на чем можно сэкономить. Предыдущая глава тоже, кстати, пользительная, она рассказывает что где в памяти лежит.
ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.
Да я уже понял что forы довольно много занимают, но они очень удобные, чем их ещё заменишь.
С помощью let s=s+1.... И.т.д. медленно бывает.
А никакого способа нет чтоб безболезненно очищать память ?
Чтобы переменные нужные не дохли и память хоть немного освобождалась.
Зачем например в памяти откладываются операции по выполнению фором или letами, они ведь уже прошли.
ZEman, возможно уже писал, но повторюсь. При написании большой программы на бейсике, стоит использовать однобуквенные переменные и по возможности один и те же имена для локальных подпрограмм. Чтобы не возникало ситуации, когда переменная задействуясь в какой-либо части программы, более нигде не используясь, занимала память.
В бейсике, все переменные являются глобальными. Будучи, хоть один раз заданной, к ней можно обращаться в любой момент выполнения программы.
Значение циклов, может использоваться как возврат в тело цикла, если в процессе его выполнения, был осуществлен переход оператором GOTO или GOSUB из тела цикла. Опять же - значение переменной цикла может понадобиться в случае "аварийного" выхода из него.
Последний раз редактировалось null_device; 20.09.2016 в 15:19.
Когда есть, но не знаешь где - это все равно, что нету.
sorry, что так долго не выкладывал, простыл, сижу с температурой
лан, лучше позже чем никогда.
Rararura 1.5.1
-оптимизация программы.
-удалил все Remы кроме двух с копирайтами.
-все forы теперь for g=...
-удалил несколько бесполезных строк.
теперь программа занимает вместо 36689 байт, всего 34808 байт.
также во вложении необходимые для работы программы файлы.
Ну это тоже, здесь ведь ничего нового нет кроме оптимизации.
уговорил
незнаю что ещё можно придумать, пока додумался лишь до..
Rararura 1.6.0 (beta)
- отделил от программы clear и poke 23658,8 в загрузчик, после которого загружается сама программа.
- освободилось ещё 40 байт
далее буду сокращать переменные, может ещё что придумаю.
это пока очень сырая бета-версия.
есть маленькая непонятка:
загружаю лоадер, затем гружу саму прогу, в самой программе нет автостарта.
в конце загрузки программы мне выдаётся "С nonsense in BASIC, 2:1"
хотя после команды run всё отлично работает.
так-же если я загружаю после лоадера программу с автостартом на 2 строку - ошибки нет.
в чём проблемма ?
Последний раз редактировалось ZEman; 23.09.2016 в 09:48.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)