Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » Огромная разница в производительности между программами под DOS и Windows

Ответить
Настройки темы
Огромная разница в производительности между программами под DOS и Windows

Аватара для Oleg_SK

Ветеран


Сообщения: 1328
Благодарности: 144


Конфигурация

Профиль | Отправить PM | Цитировать


Интересное наблюдение: программа, работающая в среде MS DOS, выполняется в десятки раз быстрее, чем эта же программа, запущенная под Windows (в DOS-окне). Программа почти полностью независима от ОС. Единственная вызываемая функция ОС предназначена для вывода символов на экран монитора (программа выводит кол-во найденных ею решений задачи). Интересно, с чем связана такая разница в производительности? При запуске программы под Windows, другие программы в это время не запускались (без учета тех, что стартуют при загрузке ОС и сидят в трее).

-------
Здесь вместо "Спасибо" принято щелкать на "Полезное сообщение" у тех постов, которые вам помогли, или показались полезными.


Отправлено: 02:39, 10-02-2009

 

Аватара для DVDshnik

Не дед


Moderator


Сообщения: 15353
Благодарности: 2192

Профиль | Отправить PM | Цитировать


Имхо, DOS и запускается-то практически мгновенно... Так что ничего удивительного не вижу. На работе ребята, связывающие компьютеры с оборудованием, частенько до сих пор DOS'ом пользуются.

-------
Ненавижу, когда все шагают строем - одинаково стриженые, одинаково одетые, с одинаковыми мыслями в одинаково пустых головах. (С) Кий

Это сообщение посчитали полезным следующие участники:

Отправлено: 06:49, 10-02-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 29
Благодарности: 5

Профиль | Отправить PM | Цитировать


Разница в том что DOS программы в Windows через эмулятор работают....и соответственно странно былобы ждать идеальной работы
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:10, 10-02-2009 | #3


Аватара для Oleg_SK

Ветеран


Сообщения: 1328
Благодарности: 144

Профиль | Отправить PM | Цитировать


DMGarikk, я не вижу в данном случае особой разницы для программы. Возможно я чего-то не понимаю? Какая разница в данном случае: в чистом DOS она работает, или под эмулятором? Напомню, что программа почти не обращается к функциям ОС. Через функции DOS она лишь печатает на экране текущее кол-во найденных решений задачи. Значение на экран выводится только когда найдено новое решение задачи. Что именно тормозит выполнение программы (не считая многозадачной среды)? Например: работая под чистой DOS, программа за 8 часов нашла около 50000 решений, а при работе под эмулятором за то же время она нашла только около 2000 решений. Вы считаете, что если я перепишу эту программу как Win32-приложение, то разница в производительности кардинально уменьшится?

P.S: Хотя, возможно, на эту разницу влияет неравномерное распределение решений по оси времени (если так можно выразиться). Например, программа может проработать час и не найти не одного решения, а затем за несколько минут найти сразу несколько решений. Собственно задача в том, чтобы найти путь для шахматного коня на поле 8x8. Конь должен побывать на каждой из клеток доски, причем на каждой клетке он может побывать лишь один раз.

-------
Здесь вместо "Спасибо" принято щелкать на "Полезное сообщение" у тех постов, которые вам помогли, или показались полезными.


Последний раз редактировалось Oleg_SK, 10-02-2009 в 11:46.


Отправлено: 11:24, 10-02-2009 | #4


Аватара для CyberDaemon

DOOMer


Сообщения: 3254
Благодарности: 438

Профиль | Отправить PM | Цитировать


Цитата Oleg_SK:
в чистом DOS она работает
И использует практически все процессорное время (и сам процессор ей используется без "посредников")
Цитата Oleg_SK:
многозадачной среды
Именно. Как дойдет до программы очередь процессором попользоваться (и то не напрямую)- так посчитает немного.
Попробуй в диспетчере задач приоритет у программы изменить - как изменится время работы?

-------
"640 K ought to be enough for anybody" Bill Gates, 1981

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:28, 10-02-2009 | #5


Аватара для detrin

Ветеран


Сообщения: 540
Благодарности: 42

Профиль | Отправить PM | Цитировать


Oleg_SK, Возможно эмулятор "кривоватый". Попробуйте в виртуальной машине установить "чистый" DOS и там проверить производительность.

Цитата CyberDaemon:
Именно. Как дойдет до программы очередь процессором попользоваться (и то не напрямую)- так посчитает немного. »
Ну и сколько win сжирает ресурсов процессора? Ну максимум 10% при простое, а тут говорится о "программа, работающая в среде MS DOS, выполняется в десятки раз быстрее".

-------
Лучше ничего не делать, чем делать ничего.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:04, 10-02-2009 | #6


Новый участник


Сообщения: 29
Благодарности: 5

Профиль | Отправить PM | Цитировать


Цитата Oleg_SK:
Напомню, что программа почти не обращается к функциям ОС »
Вот!! Но в Windows нельзя получить доступ к ресурсам комьютера напрямую (как в DOS) все эти вызовы всёравно перенаправляются через разные API и т.п. эмулятором, и естественно, как верно упомянули выше, многозадачность ложку дёгтя добавляет
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:46, 10-02-2009 | #7

exo exo вне форума

Аватара для exo

Ветеран


Сообщения: 12417
Благодарности: 1442

Профиль | Отправить PM | Цитировать


Цитата Oleg_SK:
программа, работающая в среде MS DOS, выполняется в десятки раз быстрее, чем эта же программа, запущенная под Windows (в DOS-окне). Программа почти полностью независима от ОС. »
а можно пример программ?

-------
Вежливый клиент всегда прав!


Отправлено: 15:16, 10-02-2009 | #8


Аватара для Oleg_SK

Ветеран


Сообщения: 1328
Благодарности: 144

Профиль | Отправить PM | Цитировать


Цитата DMGarikk:
Вот!! Но в Windows нельзя получить доступ к ресурсам комьютера напрямую (как в DOS) все эти вызовы всёравно перенаправляются через разные API и т.п. эмулятором »
Все верно, но тут есть одно но: за все время работы программы под эмулятором (8 часов) функции DOS для печати на экране и записи найденых решений в файл вызывались относительно маленькое кол-во раз (~15000 раз). Мне не верится, что это могло настолько сильно повлиять на производительность программы. Скорее всего, основным тормозом послужила многозадачность ОС.

Цитата exo:
а можно пример программ? »
К сожалению, примеров привести не могу. Возможно, такая же ситуация будет наблюдаться с любой небольшой DOS-программой, выполняющей длительные вычисления, и которой не требуется работать с HDD (т.е. эта программа должна работать только с теми данными, которые находятся в RAM). В моем случае, описанная здесь ситуация произошла с моей программкой, которую я написал для решения задачи описанной мной в посте #4. Кстати (только сейчас подумал), моя программка была довольно мала, и IMHO при работе под чистым DOS, она вполне могла вместе со своими данными постоянно находиться в кэше CPU.

ALL
Данная ситуация произошла уже давно (во времена Pentium III и Windows 98 SE). Моей программы, о которой тут я говорил, уже давно нет. Просто перебирал вчера свои старые бумаги, и, наткнувшись на схемы той программки, вспомнил данную ситуацию, и решил ради интереса рассказать о ней, и узнать возможные ее причины.

-------
Здесь вместо "Спасибо" принято щелкать на "Полезное сообщение" у тех постов, которые вам помогли, или показались полезными.


Отправлено: 17:49, 10-02-2009 | #9


Аватара для detrin

Ветеран


Сообщения: 540
Благодарности: 42

Профиль | Отправить PM | Цитировать


Покопался в инете, нашел вот такую информацию:
Цитата:
Несмотря на кажущуюся «моральную отсталость» MS DOS, в ряде случаев
использование MSDOS-архиваторов может быть гораздо более эффективным, по
сравнению с аналогичными версиями для Windows 9x.
1. Архиваторы работающщие в среде MSDOS работают в реальном режиме
процессора. Это обеспечивает не менее чем в 1.5 раза большую
производительность процессора, по сравнению с защищенным режимом
Windows 9x (для процессоров P-II и старше).
2. Все версии архиваторов для MS DOS ( по крайней мере из рассмотренных
выше), весьма эффективно используют память XMS или EMS. С учетом
реального режима работы процессора, это дает еще 10-15 % выиграша в
производительности.

-------
Лучше ничего не делать, чем делать ничего.


Отправлено: 16:08, 11-02-2009 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » Огромная разница в производительности между программами под DOS и Windows

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Разница в производительности при HT3.0(5200MHz) и HT1.0(2000 MT/s) Nels Процесcоры 1 30-06-2009 07:31
Разное - Разница в производительности Vista HP и Ultimate foxbat Microsoft Windows Vista 3 10-12-2007 17:29
Огромная разница в картинке -- на PC и на TV. как устранить? shmond Видео и аудио: обработка и кодирование 3 29-11-2007 15:44
Обмен данными между программами Ventil Программирование и базы данных 4 02-11-2004 15:31
Разница между 'To' и 'Cc' ankerok Хочу все знать 9 29-04-2003 10:11




 
Переход