измерить производительность kotlin сопрограммы - PullRequest
1 голос
/ 19 октября 2019

У меня есть блокирующий слушатель sqs, который извлекает сообщение из sqs, выполняет некоторую обработку (может быть проверка сообщения или обогащение), сохраняет обработанное сообщение в БД, очищает сообщение от sqs. Я планирую написать весь слушатель sqs неблокирующим способом, используя сопрограммы Kotlin. Мой вопрос заключается в том, как я могу измерить производительность (пропускную способность, использование процессора, использование потоков) между моим старым подходом и новым подходом на основе сопрограмм?

исходный код для моего подхода сопрограммы: https://github.com/thiyagu06/reactive-sqs-processor

Идея тестирования производительности состоит в том, чтобы убедиться, что мой подход на основе сопрограммы дает мне значительную производительность (может быть низкое использование процессора) по сравнению с традиционным исполнителемоснованный подход.

1 Ответ

1 голос
/ 19 октября 2019

Вы можете использовать BenchmarkRule часть Jetpack Benchmark Libray, чтобы легко написать Tests для измерения производительности вашего кода. Вот пример:

@get:Rule
val benchmarkRule = BenchmarkRule()

@Test
fun codeMeasurement() {
    benchmarkRule.measureRepeated {
        //Paste the code inside of coroutine here
    }
}

Для получения дополнительной информации прочитайте этот пост .

...