![]() |
Огромная разница в производительности между программами под DOS и Windows
Интересное наблюдение: программа, работающая в среде MS DOS, выполняется в десятки раз быстрее, чем эта же программа, запущенная под Windows (в DOS-окне). Программа почти полностью независима от ОС. Единственная вызываемая функция ОС предназначена для вывода символов на экран монитора (программа выводит кол-во найденных ею решений задачи). Интересно, с чем связана такая разница в производительности? При запуске программы под Windows, другие программы в это время не запускались (без учета тех, что стартуют при загрузке ОС и сидят в трее).
|
Имхо, DOS и запускается-то практически мгновенно... Так что ничего удивительного не вижу. На работе ребята, связывающие компьютеры с оборудованием, частенько до сих пор DOS'ом пользуются.
|
Разница в том что DOS программы в Windows через эмулятор работают....и соответственно странно былобы ждать идеальной работы :)
|
DMGarikk, я не вижу в данном случае особой разницы для программы. Возможно я чего-то не понимаю? Какая разница в данном случае: в чистом DOS она работает, или под эмулятором? Напомню, что программа почти не обращается к функциям ОС. Через функции DOS она лишь печатает на экране текущее кол-во найденных решений задачи. Значение на экран выводится только когда найдено новое решение задачи. Что именно тормозит выполнение программы (не считая многозадачной среды)? Например: работая под чистой DOS, программа за 8 часов нашла около 50000 решений, а при работе под эмулятором за то же время она нашла только около 2000 решений. Вы считаете, что если я перепишу эту программу как Win32-приложение, то разница в производительности кардинально уменьшится?
P.S: Хотя, возможно, на эту разницу влияет неравномерное распределение решений по оси времени (если так можно выразиться). Например, программа может проработать час и не найти не одного решения, а затем за несколько минут найти сразу несколько решений. Собственно задача в том, чтобы найти путь для шахматного коня на поле 8x8. Конь должен побывать на каждой из клеток доски, причем на каждой клетке он может побывать лишь один раз. |
Цитата:
Цитата:
Попробуй в диспетчере задач приоритет у программы изменить - как изменится время работы? |
Oleg_SK, Возможно эмулятор "кривоватый". Попробуйте в виртуальной машине установить "чистый" DOS и там проверить производительность.
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Цитата:
ALL Данная ситуация произошла уже давно (во времена Pentium III и Windows 98 SE). Моей программы, о которой тут я говорил, уже давно нет. Просто перебирал вчера свои старые бумаги, и, наткнувшись на схемы той программки, вспомнил данную ситуацию, и решил ради интереса рассказать о ней, и узнать возможные ее причины. |
Покопался в инете, нашел вот такую информацию:
Цитата:
|
detrin, бред какой-то: использование XMS и EMS - это защищённый режим работы процессора.
|
Время: 03:01. |
Время: 03:01.
© OSzone.net 2001-