1

Я смотрю на проблему с нашим приложением Java Webstart киоска . Иногда я получаю билет в службу поддержки, в котором говорится, что на одном ПК одновременно запущено несколько экземпляров приложения. Это вызывает проблемы с приложением, соединяющимся с единственной базой данных derby, локальной для каждого ПК киоска. Проблема спорадическая и необычная.

Теперь я обнаружил, что иногда на компьютерах с киосками выполняются антивирусные сканирования, в течение которых процесс сканирования откидывает крышку и максимально загружает процессор. Если это происходит, то загрузка приложения с рабочего стола может занять до 5 минут, в то время как у плохого компьютера, наконец, появляется достаточно места для запуска новой программы. Я подозреваю, что наши клиенты, поддерживающие людей, после решения какой-либо проблемы на любом ПК, снова откроют приложение, расстроятся тем, что оно не запускается, а затем откроют еще несколько экземпляров, пока один из них не будет запущен.

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

В приведенном выше сценарии, когда программа запускается медленно, будет ли ее процесс обнаружен немедленно или нет до тех пор, пока она не откроет свое окно или что-то еще? Я могу написать программу с несколькими потоками, выполняющими занятые методы, которые будут максимально загружать процессор - будет ли это точной симуляцией для тестирования, или мне нужно будет также постоянно захватывать файловые дескрипторы или что-то еще?

1 ответ1

0

Имитируйте перегруженный ПК с задачей с высоким приоритетом, которая загружает весь процессор, что должно дать вам достаточно времени для тестирования. Программы-бенчмарки, такие как prime и intelburn и другие, когда они настроены на загрузку всех доступных ядер процессора и имеют высокий приоритет, отключают другие программы от получения любых временных интервалов процессора, что является одним из способов случайного приостановления других процессов.

Приоритет можно настроить с помощью диспетчера задач или с помощью команды> Пуск, которая работает в XP и 7.

Вы также можете сделать реальную приостановку в win7, и я полагаю, 8, монитор ресурсов может установить процесс приостановки, это остановит его для тестирования.

Я использую метод PV для разных целей. Некоторые из них действительно старые и не используются из-за более быстрой системы, но проверены.

Запустить, если не работает

тумблер

echo OFF
C:\Desk\batch\pv.exe -q -c SHOWCALC.exe >nul
    if ERRORLEVEL 1 goto Process_NotFound
    start /B "beeps" C:\Desk\batch\wav.exe C:\WINDOWS\Media\AppSounds\calcC.wav
    EXIT

    :Process_NotFound
    start /B "beeps" C:\Desk\batch\wav.exe C:\WINDOWS\Media\AppSounds\ControlPanO.wav
    start /B "SHOWCALC window" "C:\desk\SHOWCALC.exe"
    EXIT

Принеси Бег вперед (-a), если бежишь, иначе запусти его

echo OFF
C:\Desk\batch\pv.exe -q Photoshop.exe >nul
if ERRORLEVEL 1 goto Process_NotFound
:Process_Found
C:\Desk\batch\pv.exe -q -a Photoshop.exe >nul
exit
:Process_NotFound
start /B "beeps" C:\Desk\batch\wav.exe C:\WINDOWS\Media\AppSounds\adobeeo.wav
start /B "PhotoShop" "C:\Program Files\Adobe\Adobe Photoshop CS2\Photoshop.exe"
EXIT

Убивай вещи и беги с высоким приоритетом

C:\Desk\batch\pv.exe -qc dllhost.exe
net stop Themes
C:\Desk\batch\kill.exe -f explorer.exe
C:\Desk\batch\pv.exe -qc dllhost.exe
C:\Desk\batch\pv.exe -qkf AtiTool.exe

start /B "MassEffect"  /HIGH /WAIT "E:\game\ME\Mass Effect\Binaries\MassEffect.exe"
net start Themes
start /B "splorer" explorer.exe

Никогда не было проблем с какими-либо конфликтами в них, но, как вы можете видеть, у меня часто звучит звук, чтобы рассказать человеку, что происходит.
В большинстве из них вы можете нажимать кнопку снова и снова, и она просто делает то, что должна, но система не замедляется.
Большинство программ отображаются как работающие в этих списках и диспетчерах задач, как только процесс запускается, прежде чем окно для них даже существует. Но то, как программа работает / запускается, ее зависимости (скажем, как .net или java) и то, как она запускается или с предварительными реквизитами, пакетными частями и всем остальным, может иметь огромное значение в том, насколько быстро основной процесс программы наблюдался системой.

Установка приоритета при запуске с использованием высокого, но не реального времени (плохого в реальном времени) может дать вам преимущество над AV-программами, а в киоске с запущенной одной программой это не повредит чему-либо еще?

Даже в случае программы с высокой степенью защиты всегда есть способы установить для этой программы-нарушителя более низкий приоритет, хотя на самом деле речь на шинах и насыщение диска могут в конечном итоге также потребовать фонового ввода-вывода. Существуют программы, которые имеют переключатели для фоновой обработки и регулирования собственного ввода-вывода, но я пока не видел способа сделать это с какой-либо программой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .