Сотворил на днях очередную бездисковую машинку, на которой запускается NPRINTER.EXE - для поддержки сетевой печати (у нас таких уже десятка два работает). И тут звонит клиент - очень медленно печатает. Прихожу, проверяю - да, действительно, если копируешь некий файлик (картинку) прямо на LPT (принтер Epson-C1100), печать начинается через 50 секунд, если через сеть (nprint этого же файла) - до начала печати проходит свыше 8 минут!
После некоторых разбирательств стало понятно - задание медленно забирается из очереди, примерно со скоростью 8-10 кбайт/сек, в очередь влетает быстро, без лишних задержек (секунда-две, от силы).
Стал разбираться плотнее, собрал стенд на точно такой же машине-принтере, нарыл следующие цифры: если с бездисковой машины, обслуживающей принтер, просто сказать COPY /B file.prn LPT1 - то до начала печати проходит около 14 секунд. Если пустить этот файл на печать командой NPRINT file.prn - то около сорока секунд, т.е., NPRINTER "забирает" задание из очереди примерно в три раза медленнее, чем COPY /B... Скорость при этом ~10 кбайт/сек у NPRINTER-а и, соответственно, около 30 кбайт/сек - у COPY.
Вопрос - почему такая низкая скорость у NPRINTER-а? Откуда почти троекратная разница во времени засылки задания в принтер через NPRINTER и через COPY для одной и той же машины? Ну и, почти десятикратная разница в скорости на машине клиента (она просто быстрая и современная) - откровенно напрягает.
Пробовал вместо NPRINTER-а использовать RPRINTER - стало чуть быстрее, вместо 40 секунд - 34-35, - но это принципиально дела не меняет - МЕДЛЕННО! Пробовал включать прерывания, наоборот - убирать (поллинг) - один чёрт - МЕДЛЕННО!
Машина - 486SX33, понятно, что не рекордсмен по производительности, но уж килобайт 100-150 на LPT она дать должна, как мне кажется. Сеть - 10-мегабитный Ethernet, но видно - не он держит.
У кого какие соображения будут по этому поводу? Или не парится, а просто поднять LPD на клиентской Win2000 и сделать на неё печать через NDPS?