Чтение онлайн

на главную - закладки

Жанры

Программирование мобильных устройств на платформе .NET Compact Framework

Салмре Иво

Шрифт:

//Кэшировать индекс

m_IndexOfTestColumn_CreditCard = colIdx;

//Кэшировать столбец

m_TestColumn_CreditCard = myColumn;

goto next_loop_iteration; //Опустить другие операции сравнения...

} //Endif: сравнение строк

} //Endif

if (m_IndexOfTestColumn_TravelDate == INVALID_INDEX) {

//Проверить, совпадает ли имя

if (myColumn.ColumnName == COLUMN_NAME_DATE_OF_TRAVEL) {

//Кэшировать индекс

m_IndexOfTestColumn_TravelDate = colIdx;

//Кэшировать столбец

m_TestColumn_TravelDate = myColumn;

goto next_loop_iteration; //Опустить другие операции сравнения.

} //Endif: сравнение строк

} //Endif

next_loop_iteration:

colIdx++;

 }

 m_indexesLookedUp =true;

}

//--------------

//Выполнить тест

//--------------

void changeDayOfTravel_test(testType kindOfTest) {

 //Отобразить курсор ожидания

 System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;

 //Начать с известной даты...

 System.DateTime newDate;

 newDate = System.DateTime.Today;

 changeDayOfTravel_textColumnLookup(ТЕST_CREDIT_CARD, newDate);

 //ДОПУСТИМО ТОЛЬКО ДЛЯ ТЕСТОВОГО КОДА!!!

 //Вызов сборщика мусора в коде ЗАМЕДЛИТ работу вашего приложения!

 System.GC.Collect;

 const int testNumber = 0;

 //Настроить соответствующим образом в зависимости от вида выполняемого теста

 switch (kindOfTest) {

 case testType.textColumnLookup:

PerformanceSampling.StartSample(testNumber, "Text based Column lookup.");

break;

 case testType.cachedIndexLookup:

PerformanceSampling.StartSample(testNumber, "Cached Column Index lookup.");

break;

 case testType.cachedColumnObject:

PerformanceSampling.StartSample(testNumber, "Cached Column objects");

break;

 default:

throw new Exception("Unknown state!");

 }

 //Выполнить тест!

 for (int testCount = 0; testCount < NUMBER_TEST_ITERATIONS; testCount++) {

//Передвинуть дату вперед на один день

newDate = newDate.AddDays(1);

int numberRecordsChanged = 0;

//Какой вид теста мы выполняем?

switch (kindOfTest) {

case testType.textColumnLookup:

//НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Просмотреть все имена, используя СТРОКИ

numberRecordsChanged =

changeDayOfTravel_textColumnLookup(ТЕST_CREDIT_CARD, newDate);

break;

case testType.cachedIndexLookup:

//ЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированные индексы

numberRecordsChanged =

changeDayOfTravel_cachedColumnIndex(ТЕST_CREDIT_CARD, newDate);

break;

case testType.cachedColumnObject:

//НАИЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированные объекты

//столбцов

numberRecordsChanged =

changeDayOfTravel_CachedColumns(TEST_CREDIT_CARD, newDate);

break;

}

//Убедиться в том, что тест выполняется, как и ожидалось...

if (numberRecordsChanged != 1) {

System.Windows.Forms.MessageBox.Show("No matching records found. Test aborted!");

return;

}

 }

 //Получить время, которое потребовалось для выполнения теста

 PerformanceSampling.StopSample(testNumber);

 //Обычный курсор

 System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;

 //Отобразить результаты выполнения теста

 string runInfo = NUMBER_TEST_ITERATIONS.ToString + "x" +

DUMMY_ROWS_OF_DATA.ToString + ": ";

 System.Windows.Forms.MessageBox.Show(runInfo +

PerformanceSampling.GetSampleDurationText(testNumber));

}

//ФУНКЦИЯ ПОИСКА, ОБЛАДАЮЩАЯ НИЗКОЙ ПРОИЗВОДИТЕЛЬНОСТЬЮ

private int changeDayOfTravel_ textColumnLookup(string creditCardNumber, System.DateTime newTravelDate) {

Поделиться:
Популярные книги

Я спас СССР! том 2

Вязовский Алексей
2. Я спас СССР
Фантастика:
альтернативная история
5.62
рейтинг книги
Я спас СССР! том 2

Печать пожирателя 2

Соломенный Илья
2. Пожиратель
Фантастика:
городское фэнтези
попаданцы
аниме
сказочная фантастика
5.00
рейтинг книги
Печать пожирателя 2

Том 3. Рассказы 1896-1899

Горький Максим
3. Собрание сочинений в тридцати томах
Проза:
русская классическая проза
5.00
рейтинг книги
Том 3. Рассказы 1896-1899

Каратила

Поповский Андрей Владимирович
Детективы:
боевики
6.50
рейтинг книги
Каратила

Князь Андер Арес 2

Грехов Тимофей
2. Андер Арес
Фантастика:
рпг
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Князь Андер Арес 2

Страж Кодекса

Романов Илья Николаевич
1. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса

Бастард Императора. Том 10

Орлов Андрей Юрьевич
10. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Бастард Императора. Том 10

Сталин

Радзинский Эдвард Станиславович
3. Загадки жизни и смерти
Проза:
историческая проза
7.36
рейтинг книги
Сталин

Вагант

Листратов Валерий
6. Ушедший Род
Фантастика:
боевая фантастика
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Вагант

И в аду есть герои

Панов Вадим Юрьевич
5. Тайный Город
Фантастика:
боевая фантастика
9.19
рейтинг книги
И в аду есть герои

Я еще не царь

Дрейк Сириус
25. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я еще не царь

На границе тучи ходят хмуро...

Кулаков Алексей Иванович
1. Александр Агренев
Фантастика:
альтернативная история
9.28
рейтинг книги
На границе тучи ходят хмуро...

Товарищ "Чума" 5

lanpirot
5. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 5

Лекарь Империи 9

Карелин Сергей Витальевич
9. Лекарь Империи
Фантастика:
городское фэнтези
аниме
боевая фантастика
5.00
рейтинг книги
Лекарь Империи 9