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

ЖАНРЫ

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

Салмре Иво

Шрифт:

 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 + _

"x" + DUMMY_ROWS_OF_DATA.ToString + ": "

 MsgBox(runInfo + _

PerformanceSampling.GetSampleDurationText(testNumber))

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