Книга: Программирование мобильных устройств на платформе .NET Compact Framework
Листинг 8.3. Тестовый пример, демонстрирующий неэкономное распределение памяти (типичный первоначальный вариант реализации интересующей нас функции)
Листинг 8.3. Тестовый пример, демонстрирующий неэкономное распределение памяти (типичный первоначальный вариант реализации интересующей нас функции)
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
'Вызвать сборщик мусора, чтобы быть уверенными в том, что
'тест начнется с чистого состояния.
'ПРИБЕГАЙТЕ К ЭТОЙ МЕРЕ ТОЛЬКО В ЦЕЛЯХ ТЕСТИРОВАНИЯ! Вызовы
'сборщика мусора в программах вручную будут приводить к снижению
'общей производительности приложений!
System.GC.Collect()
Dim testArray() As String = Nothing
'--------------------------------------------------
'Просмотреть элементы массива и
'найти те из них, в которых средним словом является
'"blue". Заменить "blue" на "orange"
'Запустить секундомер для нашего теста!
'--------------------------------------------------
PerformanceSampling.StartSample(0, "WastefulWorkerClass")
Dim workerClass1 As WastefulWorkerClass
Dim outerLoop As Integer
For outerLoop = 1 To LOOP_SIZE
'Присвоить элементам массива значения, которые мы хотим использовать
'при тестировании
ResetTestArray(testArray)
Dim topIndex = testArray.Length - 1
Dim idx As Integer
For idx = 0 To topIndex
'------------------------------------------
'Создать экземпляр вспомогательного класса,
'который расчленяет строку на три части
'Это неэкономный способ!
'------------------------------------------
workerClass1 = New WastefulWorkerClass(testArray(idx))
'Если средним словом является "blue", заменить его на "orange"
If (workerClass1.MiddleSegment = "blue") Then
'Заменить средний сегмент
workerClass1.MiddleSegment = "orange"
'Заменить слово
testArray(idx) = workerClass1.getWholeString()
End If
Next 'внутренний цикл
Next 'внешний цикл
'Получить время окончания теста
PerformanceSampling.StopSample(0)
MsgBox(PerformanceSampling.GetSampleDurationText(0))
End Sub
- Листинг 8.1. Применение отложенной загрузки, кэширования и освобождения графических ресурсов
- Листинг 8.2. Общий код, используемый во всех приведенных ниже вариантах тестов
- Листинг 8.3. Тестовый пример, демонстрирующий неэкономное распределение памяти (типичный первоначальный вариант реализации интересующей нас функции)
- Листинг 8.4. Рабочий класс для первого тестового примера
- Листинг 8.5. Тестовый пример, демонстрирующий уменьшение объема памяти, распределяемой для объектов (типичный образец улучшения первоначального варианта реализации интересующей нас функции)
- Листинг 8.6. Рабочий класс для второго тестового примера
- Листинг 8.7. Тестовый пример, демонстрирующий значительное уменьшение объема памяти, распределяемой для объектов (типичный образец существенной алгоритмической оптимизации первоначального варианта реализации интересующей нас функции)
- Листинг 8.8. Рабочий класс для третьего тестового примера
- Листинг 8.9. Сравнение эффективности использования строк и класса stringBuilder в алгоритмах
- Листинг 8.3. Тестовый пример, демонстрирующий неэкономное распределение памяти (типичный первоначальный вариант реализац...
- Пример установочного скрипта
- Пример из практики
- Листинг 10.1. (simpleid.c) Отображение идентификаторов пользователя и группы
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- 6.2. Типичные ошибки при проведении программ продвижения и варианты их устранения
- Аргументы функции в Python
- 6. Наставник
- Возможности, планируемые к реализации в следующих версиях
- 3. Функции
- Примеры получения статистики
- Пример применения метода «пять почему»