Для системного блока было установлено значение 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 для его кэширования между экспортом и обработкой?
Met vriendelijke groetjes.Хайн.