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

ЖАНРЫ

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

'Проверить, совпадает ли номер кредитной карточки

If (creditCardNumber = currentCreditCard) Then

'Изменить дату отъезда

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

Dim currentTravelDate As System.DateTime = CType( _

currentCustomerRow(m_TestColumn_TravelDate), _

System.DateTime)

If (currentTravelDate <> newTravelDate) Then

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

currentCustomerRow(m_TestColumn_TravelDate) = _

newTravelDate

numberRecordsChanged = numberRecordsChanged + 1

End If

End If

Next

Return numberRecordsChanged 'Количество обновленных записей

End Function

'Событие щелчка на кнопке

Private Sub buttonRunTest_Click(ByVal sender As Object, _

ByVal e As System.EventArgs) Handles buttonRunTest.Click

createDataSet

cacheDataSetInfo

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

changeDayOfTravel_test(testType.textColumnLookup)

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

changeDayOfTravel_test(testType.cachedIndexLookup)

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

changeDayOfTravel_test(testType.cachedColumnObject)

End Sub

Листинг 14.4. Результаты тестирования производительности при использовании пользовательского формата данных вместо объектов DataSet

'Определение размерных характеристик теста

Const DUMMY _ROWS_OF_DATA As Integer = 100

Const NUMBER_TEST_ITERATIONS As Integer = 500

Const TABLE_NAME_PASSENGERINFO As String = "CustomerTravelInfo"

Const TEST_CREDIT_CARD As String = "IvoCard-987-654-321-000"

Private m_data_creditCards As String

Private m_data_names As String

Private m_data_travelDates As System.DateTime

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

'Создает массив данных (вместо использования объектов DataSet)

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

Private Sub createDataSet

'=============================================

'1. Создать пространство для размещения данных

'=============================================

ReDim m_data_creditCards(DUMMY_ROWS_OF_DATA)

ReDim m_data_names(DUMMY_ROWS_OF_DATA)

ReDim m_data_travelDates(DUMMY_ROWS_OF_DATA)

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

'Добавить строки данных

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

Dim buildTestString As System.Text.StringBuilder

buildTestString = New System.Text.StringBuilder

Dim addItemsCount As Integer

For addItemsCount = 0 To DUMMY_ROWS_OF_DATA

'Выбрать день отъезда пассажира

m_data_travelDates(addItemsCount) = _

System.DateTime.Today.AddDays(addItemsCount)

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

'Выбрать имя пассажира

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

'Очистить строку

buildTestString.Length = 0

buildTestString.Append("TestPersonName")

buildTestString.Append(addItemsCount)

m_data_names(addItemsCount) = buildTestString.ToString

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

'Связать с пассажиром текстовый номер кредитной карточки

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

'Строка значения третьего столбца набора данных

buildTestString.Length = 0

buildTestString.Append("IvoCard-000-000-0000-")

buildTestString.Append(addItemsCount)

m_data_creditCards(addItemsCount) = _

buildTestString.ToString

Next

'Добавить элемент, поиск которого мы хотим выполнить в нашем тесте.

'Выбрать день для значения в первом столбце данных

m_data_travelDates(DUMMY_ROWS_OF_DATA) = _

System.DateTime.Today

'Строка для второго столбца данных

m_data_names(DUMMY_ROWS OF DATA) = "Ms. TestPerson"

'Строка с идентификатором кредитной карточки

m_data_creditCards(DUMMY_ROWS_OF_DATA) = TEST_CREDIT_CARD

End Sub

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

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

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

Sub changeDayOfTravel_test

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