Форум » Clipper » Тормоза с InKey() в Clipper 5.2e » Ответить

Тормоза с InKey() в Clipper 5.2e

alexmar: Может это уже обсуждалось? В общем ситуация такая... В цикле печати стоит обработчик нажатия на клавишу на базе InKey() (в основном для срочного прерывания печати). Под Clipper 5.01 все нормально работало, а под 5.2 начались тормоза и, как выяснилось, связанные именно с InKey(). Ведь Inkey() без параметров вообще не должен ждать ввода с клавы. А получается чего-то тормозит. Кто-нибудь сталкивался в подобным?

Ответов - 9

Sergy: программа работает в protected mode ? если да, тогда это "нормально" - большая часть процессорной мощности тратится на переключение между защищенным и "обычным" режимом, в котором работает INKEY() - сохраняются и восстанавливаются регистры, стеки, служебные массивы и тп. я вышел из подобной ситуации простым способом: проверяю юзера после печати каждых 15-25 строчек документа - тормоза сильно падают, а для обработки реакции юзера вполне достаточно.

alexmar: Sergy пишет: программа работает в protected mode Точно. В protected. Спасибо за информацию

alexmar: Sergy пишет: "обычным" режимом, в котором работает INKEY() И еще вдогонку вопрос. А функция InKeyTrap() из CTools тоже работает в обычном режиме?


alexmar: И вообще, где-нить существует список клипперовских и CT -функций, которые не работают в защищенном режиме?

suv2: alexmar пишет: а под 5.2 начались тормоза и, как выяснилось, связанные именно с InKey(). вы чо блин издеваетесь что ли? неделю назад тормоза обсуждали!

alexmar: suv2 пишет: неделю назад тормоза обсуждали! Если ты про это, то, каюсь, прозевал конец обсуждения. Спасибо, что сказал. Пошел читать ps Но в данном случае причина тормозов была как раз именно в переходах из защищенного режима. В обычном режиме было все Ok

alexmar: Сорри... Еще раз проверил и убедился, что ошибался. Тормоза были по причине, которую вот здесь объяснил suv2. Я вызывал TSInstall() при инициализации программы. И в циклах с Inkey() начинались тормоза. Буду переделывать.

suv2: tsinstall - это из моей библиотеки))) она дремучей версии наверняка) сейчас она поддерживает выгрузку (tssupport(.T.|.F.)) но все сказанное раньше - верно

suv2: еще следует сказать, что сам по себе protect mode (blinker exe protected, dpmi) - медленный. По определению. Программа реального режима работает в разы быстрее. Но в реальном режиме работать нереально))) Памяти не хватает для уже более-менее средней проги. Так что dpmi альтернативы нет. Но тормоза из-за избыточной разгрузки - еще больше, чем тормоза из за dpmi



полная версия страницы