> '--------------------------------------------------
> 'Просмотреть элементы массива и
> 'найти те из них, в которых средним словом является
> '"blue". Заменить "blue" на "orange"
> '--------------------------------------------------
> 'Запустить секундомер перед началом выполнения теста
> PerformanceSampling.StartSample(2, "DefferedObjects")
> '-------------------------------------------------------
> 'БОЛЕЕ ЭКОНОМНЫЙ СПОСОБ: Распределить память для объекта
> 'до вхождения в цикл
> '-------------------------------------------------------
> Dim workerClass1 As LessAllocationsWorkerClass
> workerClass1 = New LessAllocationsWorkerClass
> Dim outerLoop As Integer
> For outerLoop = 1 To LOOP_SIZE
> 'Присвоить элементам массива значения, которые мы хотим использовать
> 'при тестировании
> ResetTestArray(testArray)
> Dim topIndex As Integer = testArray.Length - 1 Dim idx As Integer
> For idx = 0 To topIndex
> '------------------------------------------------------------
> 'Более экономный способ:
> 'Теперь вместо повторного распределения памяти для объекта
> 'нам достаточно лишь повторно воспользоваться им
> 'Кроме того: в этом варианте реализации дополнительные строки
> 'НЕ создаются
> 'workerClass1 = new WastefulWorkerClass(
> ' testArray[topIndex])
> '------------------------------------------------------------
> workerClass1.ReuseClass(testArray(idx))
> 'Если средним словом является "blue", заменить его на "orange"
> '-------------------------------------------------------------
> 'Более экономный способ:
> 'При таком способе сравнения не требуется создавать
> 'никаких дополнительных строк
> '-------------------------------------------------------------
> If (workerClass1.CompareMiddleSegment("blue") = 0) Then
> 'Заменить средний сегмент
> workerClass1.MiddleSegment = "orange"
> 'Заменить слово
> testArray(idx) = workerClass1.getWholeString()
> End If
> Next 'внутренний цикл
> Next 'внешний цикл
> 'Остановить секундомер!
> PerformanceSampling.StopSample(2)
> MsgBox(PerformanceSampling.GetSampleDurationText(2))
>End Sub
Листинг 8.8. Рабочий класс для третьего тестового примера
>Option Strict On
>Imports System
>Public Class LessAllocationsWorkerClass
>Public WriteOnly Property MiddleSegment() As String
> Set(ByVal Value As String)
> m_middleSegmentNew = Value
> End Set
>End Property
>Private m_middleSegmentNew As String
>Private m_index_1st_undscore As Integer
>Private m_index_2nd_undscore As Integer
>Private m_stringIn As String
>Public Sub ReuseClass(ByVal in_word As String)
> '----------------------------------------------