Среда выполнения ядра Dotnet медленно запускается на Raspberry Pi 2
Raspberry Pi 2 был настроен с использованием tar-файла Lite (Raspbian 10, Buster) с сайта Raspbian.
Я установил openssh, php7.1, dotnet runtime и mono. У меня уже есть сервер RabbitMQ, работающий на отдельном Linux-сервере.
Я использую код отправки для начала работы №1 (hello-world), найденный на сайте RabbitMQ, https://www.rabbitmq.com/getstarted.html
На моем Raspberry Pi 2 я установил следующее
- PHP 7.1 для тестирования кода отправки PHP в интерфейсе командной строки
- ядро dotnet 2.2 для тестирования кода отправки C # (как консольное приложение)
- mono для тестирования кода отправки C # как Framework 4.7.2 (как консольное приложение)
В пример кода учебника я добавил секундомер, чтобы я мог измерять прошедшее время.
Результаты ниже
- dotnet - Истекшее время = 00: 00: 07.1991475
- моно - Истекшее время = 00: 00: 04.3602941
- php - Истекшее время = 00: 00: 00.1396138
У меня создалось впечатление, что кодирование в ядре Dotnet будет быстрее, чем в Framework (с использованием моно).
Я подумал, что это может быть библиотека RabbitMQ (NuGet - RabbitMq.Client)
Итак, мы решили создать два новых проекта только с Hello World в console.write.
Результаты были очень похожи.
- dotnet - 7 секунд
- моно - 4 сек
- php - 0 секунд
Я надеялся написать свое приложение на C #, но пока я не смогу решить проблему с производительностью, похоже, что PHP - лучший вариант для моего проекта.
Есть ли что-нибудь, что я могу попробовать улучшить производительность?
После долгих поисков я обнаружил похожие проблемы, но статьи были старыми и относились к ядру dotnet 2.1 в ранних выпусках. Я как бы надеялся, что к выпуску dotnet core 2.2 поддерживаемый процессор Arm будет лучше. Особенно с развитием Интернета вещей.
Процессор Arm, который я использую в своем Raspberry Pi 2, - ARMv7 rev 5 (v71).
Я попробовал Raspberry Pi 1, 2 и 3 и, к сожалению, получил те же результаты. За исключением Raspberry Pi 1, вы не можете установить dotnet (не поддерживается на процессоре ARMv6), поэтому на нем были протестированы только моно и PHP.
Любые идеи....