Является ли CPYTOIMPF для qtemp быстрее, чем для другой библиотеки? - PullRequest
4 голосов
/ 07 декабря 2009

Я программист, работающий на IBM AS400 V5R4. Я создаю 2 программы CL, обе из которых используют CPYTOIMPF для форматирования списка PF AS400 в файлы с разделителями символов. Разница между ними такова: один форматирует файлы в qtemp (PGM A), а другой форматирует файлы в библиотеку, отличную от qtemp (PGM B).

Я вызвал программу 2 отдельно, чтобы отформатировать около 90 файлов, всего около 8 миллионов записей. Обе программы потребляли более 1300 с процессорного времени, в то время как PGM A использовала примерно на 5% меньше процессорного времени, чем PGM B. Я пробовал несколько раз, и результат схож.

Могу ли я знать, почему CPYTOIMPF для qtemp быстрее, чем копировать в другую библиотеку, хотя с небольшой разницей?

Ответы [ 5 ]

2 голосов
/ 02 марта 2010

QTEMP и его содержимое не требуется для выживания после окончания срока службы, поэтому его вполне можно оптимизировать, чтобы не записывать данные на диск или делать это реже, и может не потребоваться создание транзакций файловой системы для объекта либо меняется, так как если система выходит из строя, неуправляемый QTEMP просто сдулся с работой.

Кроме того, QTEMP не нужно беспокоиться о разрешении безопасности и средствах управления объектами, поскольку он является частным для задания.

Эти и другие вещи могут сделать доступ к QTEMP менее трудоемким, чем обычная постоянная библиотека.

1 голос
/ 07 декабря 2009

QTEMP всегда находится в списке библиотек задания iSeries (с нормально настроенным iSeries). Ты сделал свое - интересно! - поэкспериментировать с библиотекой, которая тоже есть в списке библиотек?

Я не знаю, может ли syslibl, curlibl of usrlibl иметь какое-либо значение.

1 голос
/ 07 декабря 2009

Если вы не получили ответ здесь. Попробуйте опубликовать его на MIDRANGE-L . Там есть большое сообщество экспертов IBM i (или AS / 400). Кто-то может ответить на это там.

0 голосов
/ 26 февраля 2016

В QTEMP, как правило, вы просто создаете файл с CRTFILE(*YES)

Разницей может быть просто время удаления файла перед его воссозданием или более значительное время очистки файла: MBROPT(*REPLACE)

0 голосов
/ 07 декабря 2009

Интересный эксперимент.

Используете ли вы атрибут SIZE в команде CRTPF при создании выходного файла в QTEMP или другой библиотеке? Я подозреваю, что расширение файла происходит быстрее в QTEMP, чем в другой библиотеке. Установка количества записей в атрибуте SIZE равным количеству записей во входном файле может устранить разницу в производительности, поскольку файлы больше не нужно расширять.

...