Для системного блока было установлено значение 32. Я попробовал SET RMS/BLOCK=32/BUF=8. Это уже дало улучшение.
[править: если нет настройки процесса, используется системная настройка. Таким образом, выполненный тест добавил буферы, но не увеличил их]
32 всего 16 КБ. Отлично для 1992 года, плохо для 2012. Если уже помогло большее количество буферов, то большие буферы, вероятно, помогут еще больше. Чем больше, тем лучше. Кратные 8 КБ могут помочь только дополнительно. Таким образом, попробуйте 128, а также попробуйте 255 на уровне процесса SET RMS. Если это приносит счастье, то вы можете адаптировать процесс для выбора собственных настроек RMS и не полагаться на настройки DCL.
Вызов RMS $GET обычно получает только одну запись, но вы можете «солгать» о файле с помощью SET FIL/ATTR=(RFM=UDF) или, возможно, (RFM=FIX,LRL=8192). Вы можете сделать это временно в программе, используя SYS$MODIFY. После этого вы можете читать большими кусками, но вашей программе нужно будет декодировать настоящие записи в поддельных записях. Это будет очень похоже на использование SYS$READ / SYS$QIOW (BlockIO), но соблюдение режима записи даст вам бесплатное «упреждающее чтение». Да, вы можете закодировать это самостоятельно с помощью aysnc IO, но это хлопотно.
Кстати... не сходите с ума по количеству буферов. В тестах (много лет назад) я видел небольшие или отрицательные преимущества при значении более 10 или около того. Причина в том, что RMS «читает вперед», но не «упреждает». Он асинхронно заполняет все буферы, но затем не отправляет никаких дополнительных операций чтения по мере обработки буферов. Только когда все данные будут использованы, будут повторно выданы операции ввода-вывода для всех буферов, вместо того, чтобы пытаться идти вперед по мере обработки буферов. Эти «волны» операций ввода-вывода могут сбить с толку подсистему хранения, а первая операция ввода-вывода в волне может быть замедлена остальной частью волны... поэтому программа ждет.
Сколько данных в игре? десятки мегабайт или гигабайт> Будет ли кеш XFC изменяться, чтобы кэшировать его между экспортом и обработкой?
Встретила веселье groetjes. Хайн.
person
Hein
schedule
13.12.2011