Программа DOS имеет 8-секундную задержку при запуске под Win 7

моя программа DOS наследия (немедленн-офис) терпит 8 вторую задержку начиная под Windows 7 - каждое время.

запустив идентичную программу тысячи раз под DOS и Win-XP, она запускается мгновенно, буквально за секунду.

диски почти пусты, загрузка процессора составляет менее 5 процентов, тонны доступной памяти. Изолированный воздушным зазором компьютер, нет сети. Никакой вирус.

CMD.exe запускается мгновенно.

я приурочил задержка после открытия окна с отображением PIF в верхней части.

проблема не в PIF, так как я могу перейти в каталог (работает под CMD) и raw .exe имеет тот же 8 сек. задержка.

Я понимаю, что он работает под эмулятором (виртуальная машина), но 8 секунд ?!?

Это похоже на необоснованную принудительную задержку (чтобы вывести нас из программ DOS?).

есть идеи, что это вызывает ?

любые идеи о том, как диагностировать это ?

есть идеи, как обойти эту искусственную задержку ?

спасибо.

PS это поле вопроса здесь не позволит мне пометить этот вопрос с " DOS."Но это другая глупая проблема.

29
задан Old-fashioned
05.05.2023 20:56 Количество просмотров материала 2571
Распечатать страницу

6 ответов

Роберт, где вы предложение на самом деле имеет некоторый смысл проблема начала появляться с LGA 1155 чипсетов. Это было совершенно очевидно.

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

однако, мы не говорим вообще о полноэкранных приложений здесь, по той простой причине, полноэкранный режим был чисто и просто удален из Windows 7 !!!

Так все программы DOS теперь придется работать в оконном режиме, точка.

Это означает, что небольшое (даже не одна секунда, на самом деле) отставание, которое может возникнуть при изменении разрешения экрана просто не существует больше, потому что это просто невозможно произойти.

нет, мы говорим о чистом дисплее Windows.

пожалуйста, дайте ему простую попытку. Вы найдете множество приложений DOS в папке \Windows\System32: просто нажмите на edit.com (например) и убедитесь сами. :)

редактировать: на самом деле я использую дорогие видеокарты, по крайней мере, на моем домашнем компьютере.

Это ничего не меняет к явлению, и отставание имеет фиксированную и идеально прогнозируемую продолжительность.

теперь вы заставляете меня думать об этом, скорость процессора действительно что-то меняет : на i5 она короче, чем на старом Pentium 4...

Так что, вероятно, где-то есть какая-то обработка данных, скорее всего, при запуске NTVDM.

еще одна особенность, вы можете легко проверить самостоятельно-это отставание происходит только один раз.

Я объясняю :

  • запуск оболочки : нет задержки на всех
  • запустить любую программу DOS: lag
  • выйти из программы и запустить ее снова (или любой другой): нет задержки вообще.

Это означает, что он абсолютно не связан с дисплеем, но с вызовом NTVDM в первый раз (и, вероятно, настройка работы окружающая среда.)

единственная разница с новыми чипсетами заключается в том, где это было мгновение раньше, это внезапно заняло несколько секунд.

Я вообще-то довольно интересно, если это не преднамеренная попытка подтолкнуть людей использовать 16 бит приложений, но это очень сложно здесь, потому что это происходит только с Windows 7 или более поздней версии, а не с Vista, XP (если вы сможете найти драйверы, которые, как правило, может быть сделано только исключение из графика, а иногда и сетевые драйверы, если они Intel и не Realtek или других марок), и конечно не с linux...

... Таким образом, мы не можем обвинить Intel там, а скорее то, как Microsoft использует аппаратное обеспечение с NTVDM на последних версиях Windows mor (включая 32-битную Windows 10, с тем же лагом).

2
отвечен Z80 2023-05-07 04:44

У меня была та же проблема, и недавно я нашел решение на этот сайт (intelvidfix.zip‎). Это прекрасно работает для меня.


короткая версия:

патч, который исправляет сбой в BIOS некоторых встроенных графических адаптеров Intel VGA (например, 4010U, 4340 i3 и 4200U i5, 4600...), которые вызывают задержку запуска NTVDM на 5-10 секунд, а также замедляют вывод текста и другие операции INT10h (1char / second) в полноэкранном режиме режим.

версия:

кого винить в этой неразберихе. Intel или Microsoft?

интересно, что они оба виноваты в определенном смысле,но проблема с NTVDM удивительно даже выгодно для решения ошибки Intel video BIOS. Звучит немного запутанно? Вы можете прочитать больше в технических деталях ниже. Ошибка Microsoft состоит в том, чтобы не реализовать IN / OUT на 32-битных портах в NTVDM. Но даже если бы это было реализовано, BIOS Intel не будет работать должным образом, это даже вызовет больше проблем. Корпорация Intel, с другой стороны, оно ожидает порты accessinble, которые не вызывают в V86 среды, как подсистемы ntvdm. Поэтому он работает в 1 секунду тайм-аута на каждой операции, даже если он кажется, работает нормально без использования этих MMIO-портов. Так что их вина в том, чтобы попробуйте MMIO access в течение 1 секунды каждый раз, а не просто пропустить его, если он не удается по неизвестным причинам. Проблема на самом деле может быть решена путем перепрыгивания через проверите режим, который всего 1 байта до патча в видео-BIOS. К счастью отображение NTVDM адресного пространства BIOS может быть исправлено в память через DLL расширения NTVDM, так что вам не нужно перепрошивать VGA БИОС.

2
отвечен nenad 2023-05-07 07:01

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

вот как это работает, так что, может быть, вещь будет указано более точно:

  • Это, очевидно, на 32-битной версии. 64-битная версия просто не может запустить любую программу 16 бит в любом случае, как NTVDM был удален из всех 64-битных версий Windows.

  • при использовании эмулятора нет абсолютно никакой задержки. Это не имеет никакого отношения к сама программа, это всего лишь произвольная и совершенно непонятная задержка при запуске ее из Windows, или из оболочки, или что-то еще.

  • вы можете очень легко проверить yourslef, запуская любое приложение Microsoft, поставляемое с самой Windows, например edit !

кстати, как только вы запускаете любую программу DOS, вы также теряете локализацию клавиатуры !

просто сделайте этот простой тест:

  • запуск командная строка

  • введите edit - > damn 5 seconds (or so) lag, затем откроется классический текстовый редактор DOS

  • тип все -> клавиатура теперь в США layout.

об этом, добавив LH kb16 в autoexec.nt решает проблему, за исключением того, что клавиша AltGr отключена, поэтому вы не можете ввести"\", " @ " и т. д. Вы должны se ALT + ASCII код... Обратите внимание, что он работал правильно в Windows Vista (и не был нужен в XP). От Windows 7, MS предоставил неисправную таблицу клавиатуры и никогда не исправлял ее.

вернемся к нашему беспокойству:

  • Это не имеет ничего общего с разрешением экрана, частота или что угодно, по очень простой причине : полноэкранный режим больше не существует. Вы наверняка не можете запустить любую программу DOS в полноэкранном режиме, период. Они всегда должны быть оконными. Таким образом, очевидно, что ничего не меняется на рабочем столе Windows (это тоже легко проверить перед записью !)

  • тем не менее, идея о графике на основе Intel может быть серьезным намеком.

на самом деле, он работал ветер до LGA 775 материнских плат, и отставание впервые появился с LGA 1055 чипсетов. Я мог ясно видеть это (да, мои клиенты используют программы, написанные в Clipper. Тогда что ? Они делают свою работу идеально).

Так оно соединен к интегрированный видео-обрабатывать в самых последних наборах микросхем материнских плат и intel процессоры ?

Я могу подтвердить, что он ведет себя точно так же с любым процессором (от самого слабого Celeron до самого быстрого i7), и что отставание отсутствует на любой материнской плате, использующей чипсет LGA 775 или старше, независимо от процессора и С или без дополнительной видеокарты.

по крайней мере, таковы факты.

теперь о лекарстве... Я все еще расследую. :p

на данный момент, самое удовлетворяющее решение, которое я мог найти, - это эмулятор vDos. В отличие от DosBox, он правильно управляет общим доступом к файлам для многопользовательских приложений (хотя в этом случае, это не бесплатно). WMWare также работает ветер, хотя тяжелее для установки (vDos не требует почти никакой установки. Это на самом деле намного быстрее и проще в использовании, чем раньше).

Как я уже говорил выше, запуск программы DOS через vDos не является немедленным: нет задержки на всех. Конечно, он в основном нацелен на 64-битную Windows, но он делает использование программы DOS под 32-битной Windows более удобным, потому что он удаляет чертова задержка для начала.

на практически стороне, наши multi клиенты потребителей фактически работают через замазку соединенную в ssh к серверам Линукса бежать Dosemu. По крайней мере, у нас нет никаких проблем с клавиатурой или дисплеем в этой настройке (о проблемах с дисплеем Microsoft добавляла CHCP в Windows, в то время как это не имело никакого смысла, так как все программы DOS всегда использовали стандартную кодовую страницу 437. В результате, какой-то полу-графические символы дисплея необычные экзотические символы с диакритическими знаками вместо.)

конечно, возможность запуска DOS программ под Windows без родного странный ЛАГ будет приятнее. Это и проклятая ошибка перевода клавиатуры... Он работал хорошо в Vista, так что мне интересно, если Vista файлы могут быть вставлены в последних версиях Windows... Мне все еще нужно их опознать.

1
отвечен Z80 2023-05-07 09:18

В общем, поддержка dos постепенно сокращалась начиная с XP (она не запускает небольшое количество программ, которые работали в 98). Что вы смогли запустить их на Windows 7-это уже маленькое чудо. Имея это в виду, не было бы полной неожиданностью, если бы даже DOSBox мог запускать эти программы быстрее, чем собственная "эмуляция"Windows.

0
отвечен prusswan 2023-05-07 11:35

на самом деле Prusswan, DosBox запускает эти программы очень медленнее.

когда мои клиенты просят ПК для запуска этих программ в автономном режиме, я устанавливаю 32-битную ОС на них, вот и все.

единственным недостатком является локализованный драйвер клавиатуры (вы должны добавить kb16 в autoexec.ini) это испорчено, так как он отключает клавишу Alt Gr, поэтому расширенные символы становятся недоступными (что означает отсутствие доступа к "@", "\", "#", etc. например, на французском языке, поэтому пользователи должны держать клавиша Alt и введите их ASCII коды !)

кроме этого, вы получаете самый быстрый опыт при запуске этих программ под родной Windows (вы должны повторно включить NTVDM в Windows 10, есть настройка для этого).

vDos - очень хорошая альтернатива.

Я согласен с использованием XPMode замедлял вещи немного, но это было очень приятно тоже, и я, к сожалению, сожалею, что они удалили его из Windows 10.

речь шла не только о приложениях DOS, но также о приложениях Windows 16 бит в целом. Я использую графические работы 4 за десятилетия (я купил лицензию, в случае, если вам интересно) и я не могу использовать его больше дома, потому что я тупо установил Windows 7 на 64 бита, чтобы получить с i7 + 16 ГБ ОЗУ + 10 Гбит / с твердотельный накопитель полную мощность, и я еще более тупо обновили его до Windows 10... Так что нет более простого технического черчения дома. : (

во всяком случае, лучшее решение прямо сейчас для DOS приложений под 64 бит Windows (и 32 бит Windows если отставание действительно расстраивает вас), вероятно, vDos.

тем не менее, вопрос остается открытым о причине, и, надеюсь, лекарство, об этом странном отставании...

0
отвечен Z80 2023-05-07 13:52

Это связано с вашей видео картой. Держу пари, вы используете процессор Intel core со встроенным процессором Intel HD Graphics 4400.

задержка не 8 секунд на каждой системе. На некоторых системах он длиннее. У меня есть система, которая всегда имеет 5-секундную задержку.

Не каждая видеокарта поддерживает все видеорежимы. Например, некоторые видеокарты не поддерживают полноэкранный режим DOS. То есть текст имеет ширину 80 столбцов и высоту 25 строк. Только некоторые видеокарты поддержка программ DOS в windows.

по моему опыту, встроенный процессор Intel HD Graphics 4400 всегда вызывает задержку запуска 16-битных программ.

может быть, вы можете купить недорогую видеокарту и положить ее в свой компьютер и прекратить использовать встроенный VGA или DVI на материнской плате.

может быть, Intel может исправить это в драйвере для интегрированного 4400 чип видео.

до тех пор, вы будете испытывать задержку каждый раз вы запускаете 16-битную программу. Даже если вы уже находитесь в "черном" окне командной строки. Можно подумать, что драйвер уже вошел в режим поддержки программы DOS. Но вы испытаете задержку, когда вы введете имя 16-битной программы и нажмете enter.

-2
отвечен Robert Huggins 2023-05-07 16:09

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх