//Остановить таймер
//-------------------------------------------------------
PerformanceSampling.StopSample(TEST_NUMBER);
//-------------------------------------------------------
//Показать результаты пользователю
//-------------------------------------------------------
if (count_SumLessThanZero == numberIterations) {
System.Windows.Forms.MessageBox.Show("Тест выполнен");
listBox1.Items.Add(PerformanceSampling.GetSampleDurationText(TEST_NUMBER));
} else {
System.Windows.Forms.MessageBox.Show("При выполнении теста возникали осложнения");
}
}
//конец функции
//===========================================================
//Осуществляет многократные вызовы простой функции и
//измеряет общее время выполнения.
//
//Вызываемая функция ВОЗБУЖДАЕТ исключения
//===========================================================
private void buttonRunExceptionCode_Click(object sender, System.EventArgs e) {
const int TEST_NUMBER = 1;
//Получить количество итераций
int numberIterations;
numberIterations = System.Convert.ToInt32(textBoxNumberAttempts.Text);
//Отобразить количество итераций, которые надлежит выполнить
listBox1.Items.Add("=>" + numberIterations.ToString() + " итераций");
int count_SumLessThanZero;
int dataOut;
//-------------------------------------------------------
//Запустить таймер
//-------------------------------------------------------
PerformanceSampling.StartSample(TEST_NUMBER , "Перехват исключения");
//-------------------------------------------------------
//Выполнить цикл, в котором осуществляется вызов функции
//-------------------------------------------------------
count_SumLessThanZero = 0;
bool sumGreaterThanZero;
for (int i = 0; i < numberIterations; i++) {
try {
//=========================
//Вызвать тестовую функцию!
//=========================
sumGreaterThanZero = exceptionIfLessThanZero_Add2Numbers(-2, -3, outdataOut);
} catch {
count_SumLessThanZero++;
}
} //конец цикла
//-------------------------------------------------------
//Остановить таймер
//-------------------------------------------------------
PerformanceSampling.StopSample(TEST_ NUMBER);
//-------------------------------------------------------
//Показать результаты пользователю
//-------------------------------------------------------
if (count_SumLessThanZero == numberIterations) {
System.Windows.Forms.MessageBox.Show("Тест выполнен");
listBox1.Items.Add(PerformanceSampling.GetSampleDurationText(ТЕST_NUMBER));
} else {
System.Windows.Forms.MessageBox.Show("При выполнении теста возникали осложнения");
}
}
Высокая производительность в сочетании с хорошо продуманным пользовательским интерфейсом — вот что придает элегантность мобильному приложению. Имея в своем активе высокие показатели производительности, вы можете расходовать капитал разработки на расширение функциональных возможностей приложения. Заручившись этим, вы можете смело подыскивать для приложения новые интересные области применения. Приложение с низкой производительностью — это все равно, что дырявая крыша над головой; вы потратите все свое время на то, чтобы перебегать от одной прорехи к другой, латая дыры, пока все равно не придется менять крышу в самый неожиданный момент, а такой ситуации не позавидуешь. Хорошая производительность достигается сознательными усилиями и является результатом планируемых действий, плохая производительность — следствие допущенных ошибок. Стремитесь к обеспечению высокой производительности и направляйте на это основные усилия, когда разрабатываете мобильное приложение.
По мере написания кода и разработки приложения между его модулями будут формироваться различного рода взаимозависимости. Чем больше кода вы напишете, тем более жестким будет становиться приложение, оставляя вам все меньше возможностей для радикального изменения системы. Обеспечение высокой производительности часто требует радикального пересмотра проекта, и поэтому за решение проблем этого рода лучше всего браться сразу же после того, как они становятся очевидными. Для этого существуют два способа: 1) свяжите с каждым из ключевых этапов разработки определенные цели, связанные с производительностью, и не считайте этап успешно завершенным, пока эти цели не будут достигнуты, и 2) периодически измеряйте и анализируйте показатели производительности.
Производительность, как к ней ни подходить, воспринимается субъективно. Если пользователю кажется, что производительность приложения низкая, оно обладает слабой интерактивностью или им неудобно пользоваться, то из такой его оценки и надо исходить. Уделяйте пристальное внимание тем деталям, от которых зависит, какой будет субъективная оценка, данная вашему приложению пользователями, — хорошей или плохой. По этой причине весьма полезно создавать прототипы идей и привлекать для их тестирования пользователей реальных устройств. Те, кто пользуется мобильными устройствами, желают получать от них осязаемые подтверждения того факта, что интерактивная связь между пользователем и устройством ни на минуту не разрывается. Не чувствуя ответной реакции устройства после отправки ему запроса, пользователи очень скоро начинают беспокоиться. Всегда старайтесь, чтобы в процессе работы вашего приложения беспокойство пользователя по этому поводу было сведено к минимуму. Не заставляйте пользователей гадать — происходит что-то или не происходит; незамедлительно давайте им знать о том, что устройство занято обслуживанием их запроса.
Читать дальше