Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: LIII Международной научно-практической конференции «Технические науки - от теории к практике» (Россия, г. Новосибирск, 23 декабря 2015 г.)

Наука: Технические науки

Секция: Информатика, вычислительная техника и управление

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Барило И.И. РАСШИРЕНИЕ ВОЗМОЖНОСТЕЙ ОТОБРАЖЕНИЯ ОПЕРАТИВНОЙ ИНФОРМАЦИИ О ВЫПОЛНЕНИИ ПРОЦЕССОВ В КОНСОЛЬНОМ ПРИЛОЖЕНИИ // Технические науки - от теории к практике: сб. ст. по матер. LIII междунар. науч.-практ. конф. № 12(48). – Новосибирск: СибАК, 2015.
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

 

 

РАСШИРЕНИЕ ВОЗМОЖНОСТЕЙ ОТОБРАЖЕНИЯ ОПЕРАТИВНОЙ ИНФОРМАЦИИ О ВЫПОЛНЕНИИ ПРОЦЕССОВ В КОНСОЛЬНОМ ПРИЛОЖЕНИИ

Барило Илья Иванович

канд. техн. наук., доцент

Костромского государственного технологического университета,

РФ, г. Кострома

E -mailmail@barilo.ru

 

INCREASING ABILITIES TO VIEW OPERATIONAL INFORMATION ABOUT EXECUTION OF THE PROCESS IN THE CONSOLE APPLICATION

Ilya Barilo

Ph.D, assistant professor

of Kostroma State Technological University,

Russia , Kostroma

 

АННОТАЦИЯ

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

ABSTRACT

The article discusses the problem outputting in a log information consisting of a values variables using for outputting on the screen console application; marked differences output information when working in a console application as part of a batch file, and as a separate application that allows to offer the output of intermediate variable values to window caption of the console application; proposed implementation of the output overall progress runtime; was tested the proposed solutions of output operational information.

 

Ключевые слова: консоль; консольное приложение; вывод информации; прогресс; лог; файл.

Keywords: console; console application; output information; progress; log; file.

 

 

 

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

Вывод динамически меняющихся чисел процентов и другой информации требует стирания управляющими символами BACKSPACE [3, с. 3], ранее выведенных чисел процентов для замены их на новые.

Если производится вывод только на экран, то этот способ вполне подходит для реализации отображения меняющихся значений.

Консольные приложения выводят информацию в потоки, которые могут выводится в консоль или в файлы.

Стандартными потоками вывода информации из консольных приложений, согласно справочной информации в MSDN [4], являются:

1.  stdout – вывод;

2.  stderr – вывод ошибок.

При запуске консольных приложений информацию из потоков можно направить в файлы [6].

Если вывести информацию в файл, то в него будут сохранены все выведенные на экран символы, включая управляющие символы BACKSPACE.

На рис. 1 представлены фрагменты файла, в который был выведен процесс обновления процентов и вариант обновления представления промежуточной информации этапа верификации.

 

Рисунок 1. Фрагменты логов вывода изменяемой в окне приложения информации

 

На рис. 1 видно, что сначала на экране выделяется место для вывод меняющихся данных, а затем, перед выводом очередного значения, стирается место занятое ранее выведенным значением.

В первом случае выводились проценты и символы, удаляющие их, во втором случае выводилось больше информации и символов удаления потребовалось больше.

На рисунке представлены фрагменты лога приложения, отображаемые в браузере Mozilla Firefox 42.0. Если использовать другие программы для просмотра лога, то управляющие символы могут быть обозначены иначе или даже скрыты.

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

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

При работе консольного приложения в составе пакетного файла [5], и как отдельного приложения, есть отличие в возможностях вывода информации, что хорошо видно на рис. 2.

 

Рисунок 2. Схема вывода информации консольного приложения в зависимости от работы ее в составе пакетного файла и работы как отдельного приложения

 

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

Этот подход не удобен тем, что не во всех случаях возможен вывод в лог ошибок stderr, особенно когда приложение используется вместе с другими приложениями, и необходимо отслеживать общий лог их выполнения.

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

Решение использования заголовка программы для выводов промежуточной информации позволит выводить общий прогресс исполнения приложения параллельно с отображением процессов этапов в консоли. Пример такого решения представлен на рис. 3.

 

Рисунок 3. Информация в заголовке программы

 

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

Разработана тестовая программа, реализующая вывод промежуточных значений в заголовок программы. Фрагмент кода тестовой программы, написанной на языке программирования Microsoft VisualBasic.NET, выводящий промежуточные значения в заголовок программы, представлен ниже:

 

For iter = 1 To 100000

Next

 

Для тестирования программы использовался компьютер со следующими важными для тестирования характеристиками:

1.  Процессор: Intel i7 860.

2.  Видеокарта: Sapphire Radeon HD 5770.

3.  Операционная система: Windows 7 Home Premium.

4.  Настройки оформления рабочего стола: Aero [2].

 

Время работы представленного фрагмента программы, выводящего информацию в заголовок окна 100000 раз (от 0,000 % до 100,000 %), составило 2,4 с.

Как видно из времени работы фрагмента тестовой программы, вывод информации в заголовок программы при высоком качестве оформления рабочего стола производится на высокой скорости и практически не замедляет программу даже при большом количестве промежуточных значений.

Таким образом, предлагаемое решение вывода оперативной информации в заголовок программы позволяет оперативно информировать пользователя о процессе выполнения консольной программы без снижения информативности лога и об общем прогрессе выполнения программы.

 

Список литературы:

1. Консольные приложения Win32 в Visual C++ // // Обучение разработкам с Microsoft Developer Network — MSDN [Электронный ресурс] – Режим доступа. – URL: https://msdn.microsoft.com/ru-ru/library/hh875011.aspx (дата обращения: 06.12.2015).

2. Что такое оформление рабочего стола Aero? // Windows и Windows 10 — Microsoft [Электронный ресурс] – Режим доступа. – URL: http://windows.microsoft.com/ru-ru/windows7/what-is-the-aero-desktop-experience (дата обращения: 12.12.2015).

3. C0 Controls and Basic Latin // Unicode Consortium [Электронный ресурс] – Режим доступа. – URL: http://unicode.org/charts/PDF/U0000.pdf (дата обращения: 12.12.2015).

4. stdin, stdout, stderr // Обучение разработкам с Microsoft Developer Network — MSDN [Электронный ресурс] – Режим доступа. – URL: https://msdn.microsoft.com/ru-ru/library/3x292kth.aspx (дата обращения: 12.12.2015).

5. Using batch files // Microsoft – официальная страница [Электронный ресурс] – Режим доступа. – URL: https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true (дата обращения: 12.12.2015)

6. Using command redirection operators // Microsoft – официальная страница [Электронный ресурс] – Режим доступа. – URL: https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/redirection.mspx?mfr=true (дата обращения: 12.12.2015).

 

 

Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.