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

ЖАНРЫ

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

Dim dataColumnCount As Integer

dataColumnCount = m_TableCustomerInfo.Columns.Count

Dim myColumn As System.Data.DataColumn

Dim colIdx As Integer

While (colIdx < dataColumnCount)

myColumn = m_TableCustomerInfo.Columns(colIdx)

'Предпринимать поиск, только если это еще не сделано

If (m_IndexOfTestColumn_CreditCard = INVALID_INDEX) Then

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

If (myColumn.ColumnName = _

COLUMN_NAME_PASSENGER_CREDIT_CARD) Then

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

m_IndexOfTestColumn_CreditCard = colIdx

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

m_TestColumn_CreditCard = myColumn

GoTo next_loop_iteration 'Опустить другие операции сравнения...

End If 'Endif: сравнение строк

End If

If (m _IndexOfTestColumn_TravelDate = INVALID_INDEX) Then

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

If (myColumn.ColumnName = _

COLUMN_NAME_DATE_OF_TRAVEL) Then

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

m_IndexOfTestColumn_TravelDate = colIdx

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

m_TestColumn_TravelDate = myColumn

GoTo next_loop_iteration 'Опустить другие операции сравнения

End If 'Endif: сравнение строк

End If

next_loop_iteration:

colIdx = colIdx + 1

End While

m_indexesLookedUp = True

End Sub

'---------------

'Выполнить тест.

'---------------

Sub changeDayOfTravel_test(ByVal kindOfTest As testType)

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

System.Windows.Forms.Cursor.Current = _

System.Windows.Forms.Cursors.WaitCursor

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

Dim newDate As System.DateTime

newDate = System.DateTime.Today

changeDayOfTravel_textColumnLookup(TEST_CREDIT_CARD, newDate)

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

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

System.GC.Collect

Const testNumber As Integer = 0

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

Select Case (kindOfTest)

Case testType.textColumnLookup

PerformanceSampling.StartSample(testNumber, _

"Text based Column lookup.")

Case testType.cachedIndexLookup

PerformanceSampling.StartSample(testNumber, _

"Cached Column Index lookup.")

Case testType.cachedColumnObject

PerformanceSampling.StartSample(testNumber, _

"Cached Column objects")

Case Else

Throw New Exception("Unknown state!")

End Select

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

Dim testCount As Integer

For testCount = 1 To NUMBER_TEST_ITERATIONS

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

newDate = newDate.AddDays(1)

Dim numberRecordsChanged As Integer = 0

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

Select Case (kindOfTest)

Case testType.textColumnLookup

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

numberRecordsChanged = _

changeDayOfTravel_textColumnLookup( _

TEST_CREDIT_CARD, newDate)

Case testType.cachedIndexLookup

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

numberRecordsChanged = _

changeDayOfTravel_cachedColumnIndex( _

TEST_CREDIT_CARD, newDate)

Case testType.cachedColumnObject

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

numberRecordsChanged = _

changeDayOfTravel_CachedColumns( _

TEST_CREDIT_CARD, newDate)

End Select

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

If (numberRecordsChanged <> 1) Then

MsgBox("No matching records found. Test aborted!")

Return

End If

Next

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

PerformanceSampling.StopSample(testNumber)

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

System.Windows.Forms.Cursor.Current = _

System.Windows.Forms.Cursors.Default

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

Dim runInfo As String = NUMBER_TEST_ITERATIONS.ToString + _

Поделиться с друзьями: