Странности с диском RAM:

Софт для классических Amiga. AmigaOS 1.x-3.9, Morphos 1.x

Модераторы: striimii, Vinnny

Странности с диском RAM:

Сообщение tnt23 04 мар 2014, 11:07

Дано: система с 2M чипа и 64М фаста.

Берем файл-болванку размером 14M и копируем в рам-диск, допустим, в файл junk1.
Повторяем копирование, на этот раз в junk2.
В третий раз забрасываем невод, получаем junk3.

Итого на диске RAM: лежат 3 файла размером 14М каждый. Свободной памяти около 19M:

Код: Выделить всё
Unit   Size   Used   Free
RAM:     41M   42998      0
42570 blocks used


Казалось бы, можно и четвертую болванку туда засунуть (свободно 19M, размер болванки 14M). А вот фигушки - система жалуется на нехватку RAM.

Кто-нибудь может повторить этот чрезвычайно интеллектуальный эксперимент и дать эмоциональное объяснение результата?
A500, A600, A1200, A3000
Аватара пользователя
tnt23
Беспардонный Амигофлуд
Беспардонный Амигофлуд
 
Сообщения: 1293
Зарегистрирован: 17 май 2005, 16:59
Откуда: Санкт-Петербург

Re: Странности с диском RAM:

Сообщение easy_john 04 мар 2014, 13:18

А какое при этом максимальное место одним куском?
PegasosII G4 1.0/1Gb/80Gb/Ati 9200/MorphOS unreg/Debian
a4000/PPC 233mhz/68060 50mhz/128mb/cv ppc/toccata/x-surf/kickflash/indivision/AOS3.9-4.0
a1200/PPC 200mhz/68040 25mhz/256mb/bv ppc/delfina/wifi/indivision sd+ff/AOS 3.9-4.0
a600/68000 7mhz/8mb fast/wifi/AOS 3.0
Аватара пользователя
easy_john
Менеджер
Менеджер
 
Сообщения: 4296
Зарегистрирован: 03 мар 2006, 15:24
Откуда: SPb

Re: Странности с диском RAM:

Сообщение tnt23 04 мар 2014, 14:24

Хороший вопрос. Не знаю, а это принципиально? RAM драйв отличается от настоящего диска тем, что на нем собственная файловая система (я так понял) и в общем случае его потенциально возможный макс.объем равен всей свободной памяти. Оверхед на всякие там структуры не должен влиять, и фрагментация памяти тем более.
A500, A600, A1200, A3000
Аватара пользователя
tnt23
Беспардонный Амигофлуд
Беспардонный Амигофлуд
 
Сообщения: 1293
Зарегистрирован: 17 май 2005, 16:59
Откуда: Санкт-Петербург

Re: Странности с диском RAM:

Сообщение tnt23 04 мар 2014, 14:41

Папы этого ответ
Помещаю в книжке:

http://eab.abime.net/showpost.php?p=941454&postcount=2

Короче говоря, все дело в максимальном размере свободного куска памяти.
A500, A600, A1200, A3000
Аватара пользователя
tnt23
Беспардонный Амигофлуд
Беспардонный Амигофлуд
 
Сообщения: 1293
Зарегистрирован: 17 май 2005, 16:59
Откуда: Санкт-Петербург

Re: Странности с диском RAM:

Сообщение easy_john 04 мар 2014, 14:57

Так и думал. Поставь какой-нить дефрагментатор памяти, глядишь получится одним куском аллоцировать.
PegasosII G4 1.0/1Gb/80Gb/Ati 9200/MorphOS unreg/Debian
a4000/PPC 233mhz/68060 50mhz/128mb/cv ppc/toccata/x-surf/kickflash/indivision/AOS3.9-4.0
a1200/PPC 200mhz/68040 25mhz/256mb/bv ppc/delfina/wifi/indivision sd+ff/AOS 3.9-4.0
a600/68000 7mhz/8mb fast/wifi/AOS 3.0
Аватара пользователя
easy_john
Менеджер
Менеджер
 
Сообщения: 4296
Зарегистрирован: 03 мар 2006, 15:24
Откуда: SPb

Re: Странности с диском RAM:

Сообщение tnt23 04 мар 2014, 15:46

easy_john писал(а):Так и думал. Поставь какой-нить дефрагментатор памяти, глядишь получится одним куском аллоцировать.


Что такое "какой-нибудь дефрагментатор"? AVAIL FLUSH по совету из того же треда не помогает. Похоже, RAM: драйв устроен очень примитивно и не умеет распихивать контент по мелким фрагментам. В принципе, наверное, ему и не надо.
A500, A600, A1200, A3000
Аватара пользователя
tnt23
Беспардонный Амигофлуд
Беспардонный Амигофлуд
 
Сообщения: 1293
Зарегистрирован: 17 май 2005, 16:59
Откуда: Санкт-Петербург

Re: Странности с диском RAM:

Сообщение easy_john 04 мар 2014, 16:34

tnt23 писал(а):AVAIL FLUSH по совету из того же треда не помогает. Похоже, RAM: драйв устроен очень примитивно и не умеет распихивать контент по мелким фрагментам. В принципе, наверное, ему и не надо.

Разбираемся с фрагментацией памяти

Как вы знаете у AmigaOS есть проблеммы с фрагментацией памяти. Сейчас есть задумки как от нее избавится, но как правило работу с памятью оставляют на совести разработчиков программ.
Есть две помогающие нам утилиты:
Первая - PoolMem и требует установки FragCure после себя.
Вторая - использоваться недавно разработанный MemOptimizer и вобще не использовать FragCure. (В документации объясняется почему).
Лично мы предпочитаем MemOptimizer. Неизвестно, на столько ли он эфективен, как PoolMem, скорее всего нет, однако он 100% совместим с AmigaOS и не вызывает проблемм ни с камими другими программами.
Для обоих патчей - тщательно читайте документацию, там есть много тонкостей.
Так же помните, что сами по себе Exec44.1 и Amber Ram расчитанны на небольшое уменьшение фрагментации памяти.
WBAllocFast: Небольшой патч, заставляющий WorkBench использоваться Fast память всместо Chip для некотрых типичных задач. Смысл использования очевиден. Не очень похоже на честный патчь, но про тестировании не выявлено программ, с которыми бы он не был совместим. Устанавливается после PoolMem или MemOptimizer. (Есть заметки, что данный патч может конфликтовать с DOpus и AfA)
PegasosII G4 1.0/1Gb/80Gb/Ati 9200/MorphOS unreg/Debian
a4000/PPC 233mhz/68060 50mhz/128mb/cv ppc/toccata/x-surf/kickflash/indivision/AOS3.9-4.0
a1200/PPC 200mhz/68040 25mhz/256mb/bv ppc/delfina/wifi/indivision sd+ff/AOS 3.9-4.0
a600/68000 7mhz/8mb fast/wifi/AOS 3.0
Аватара пользователя
easy_john
Менеджер
Менеджер
 
Сообщения: 4296
Зарегистрирован: 03 мар 2006, 15:24
Откуда: SPb

Re: Странности с диском RAM:

Сообщение tnt23 05 мар 2014, 13:39

Странно, но под UAE я таких проблем не наблюдаю. Правда, там не чистая система, а ClassicWB и фиг знает как устроена работа с памятью.

Покамест нашел шикарный тест памяти MBRTEST-2, прогоню его пару раз. Может, это у меня что-то напортачено в контроллере памяти.
A500, A600, A1200, A3000
Аватара пользователя
tnt23
Беспардонный Амигофлуд
Беспардонный Амигофлуд
 
Сообщения: 1293
Зарегистрирован: 17 май 2005, 16:59
Откуда: Санкт-Петербург

Re: Странности с диском RAM:

Сообщение tnt23 05 мар 2014, 19:43

Вы не поверите, но все дело в параметре BUFFERS команды COPY. По умолчанию (у меня WB 3.1) BUFFERS=0, что означает использование буфера размером с копируемый файл. Если указать BUFFERS=100 или 1000 или любое иное разумное число, то дуло исчезает.
A500, A600, A1200, A3000
Аватара пользователя
tnt23
Беспардонный Амигофлуд
Беспардонный Амигофлуд
 
Сообщения: 1293
Зарегистрирован: 17 май 2005, 16:59
Откуда: Санкт-Петербург

Re: Странности с диском RAM:

Сообщение easy_john 06 мар 2014, 00:53

Не знал.
PegasosII G4 1.0/1Gb/80Gb/Ati 9200/MorphOS unreg/Debian
a4000/PPC 233mhz/68060 50mhz/128mb/cv ppc/toccata/x-surf/kickflash/indivision/AOS3.9-4.0
a1200/PPC 200mhz/68040 25mhz/256mb/bv ppc/delfina/wifi/indivision sd+ff/AOS 3.9-4.0
a600/68000 7mhz/8mb fast/wifi/AOS 3.0
Аватара пользователя
easy_john
Менеджер
Менеджер
 
Сообщения: 4296
Зарегистрирован: 03 мар 2006, 15:24
Откуда: SPb

Re: Странности с диском RAM:

Сообщение Vinnny 06 мар 2014, 19:37

tnt23 писал(а):Вы не поверите, но все дело в параметре BUFFERS команды COPY. По умолчанию (у меня WB 3.1) BUFFERS=0, что означает использование буфера размером с копируемый файл. Если указать BUFFERS=100 или 1000 или любое иное разумное число, то дуло исчезает.

что-то подобное я тоже думал, только про T:, да не смог додумать :)
Pegasos2+Efika, MorphOS registered
Amiga1200, Blizzard030, AmigaOS
ПэЦэ, вЕнда
Аватара пользователя
Vinnny
Менеджер
Менеджер
 
Сообщения: 2433
Зарегистрирован: 18 май 2002, 12:56
Откуда: NiNo

Re: Странности с диском RAM:

Сообщение tnt23 06 мар 2014, 22:17

Vinnny писал(а):
tnt23 писал(а):Вы не поверите, но все дело в параметре BUFFERS команды COPY. По умолчанию (у меня WB 3.1) BUFFERS=0, что означает использование буфера размером с копируемый файл. Если указать BUFFERS=100 или 1000 или любое иное разумное число, то дуло исчезает.

что-то подобное я тоже думал, только про T:, да не смог додумать :)


Еще подробностей: этим страдает только COPY из WB 3.0, которая у меня как раз и стоит. Дотошный товарищ с EAB разжевал:

"I just noticed that the bug was mentioned in the V38_V39_OS_Changes document on the Amiga Developer CD 2.1:
Код: Выделить всё
The default size for the buffers used was always equivalent to (BUF=0)
which caused the buffers to be the size of the files being copied.
This was contrary to the docs, and caused problems when copying large
files through Envoy, as it could easily eat up all the memory in the
system, not leaving enough for the memory needed by Envoy.  The
default size is now BUF=128 which gives a 64K buffer.
"

http://eab.abime.net/showpost.php?p=941938&postcount=18
A500, A600, A1200, A3000
Аватара пользователя
tnt23
Беспардонный Амигофлуд
Беспардонный Амигофлуд
 
Сообщения: 1293
Зарегистрирован: 17 май 2005, 16:59
Откуда: Санкт-Петербург


Вернуться в Софт Classic Amiga

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 26

cron