Pull to refresh

Comments 36

На андроиде очень сильно процессорное время жрёт вон тот баннер. Надо проверить на рутованом девайсе с фаерволлом.
Да можно просто интернет отключить.
P.S. Нет смысла делать аналогичный тест для iOs, так как код компилируется АОТ
Проверил на Nexus 4 (Qualcomm Snapdragon S4 Pro APQ8064, 4 ядра, 1500 МГц) и Samsung Galaxy Note 8.0 (Exynos 4412, 4 ядра, 1600 МГц) — Mono проигрывает в обоих случаях в 1,5-2 раза.
Результаты тестов LINPACK for Android нестабильны на обоих девайсах, получается разброс примерно 150-220, при этом указывается точность 2.22E-16
Интересно. Могу предположить что в Mono по умолчанию не используются все 4 ядра. Никакого принудительного распараллеливания я не писал, а как ведет себя Task внутри предсказать сложно. Думаю, использовав возможности TPL и Parallel.For можно добиться более лучшего результата.
8-ми мегапиксельная картинка на 3 Мб в начале статьи — просто огонь :)
Пользователи GPRS интернета тихо плачут в сторонке…
я очевидно зря понадеялся на
сервис Habrastorage.org — он сразу уменьшает большие картинки до нужного размера и позволяет выдерживать высокие нагрузки.

Пережал и перезалил картинку.
Samsung Galaxy S3
Mono — 65 (стабильный результат)
Java Single Thread — 41 (стабильный результат)
Java Multi Thread — максимум 138 (скачет от 90 до 138)
Объясните пожалуйста каким образом Mono под Android может работать на том же уровне что и Dalvik виртуальная машина. Насколько я знаю есть только два способа написать что-то под андроид: на java или native(*.so) и тоже вызвать из java. Как же тогда автор статьи может говорить что Mono и Dalvik на одном уровне? Значит есть третий способ писать под андроид?
Есть. В основе android лежит linux и Mono как и Dalvik работает поверх ядра линукса.
image
подробнее можно почитать тут
LG Optimus G Pro (E988)
CPU: 4-ядерный, 1.7 ГГц (Qualcomm Snapdragon™ 600)

Mono: 80.6
Android ST: 286
Android MT: 661

Как-то у Mono плоховато с ядроюзабельностью. Попробуйте собрать с TPL.
Хм на ноут3 не ставится моно версия.
В обычном линпаке — 750-860 в мультитреде
Точность — 2,22 показывает
update:
Поставился
MonoLP — 200-240
Precision 2.22
Acer Iconia Tab A501

dalvik single: 37.18
dalvik multi: 62.1
mono: 52.17 — 56.57 (скачет)
Lenovo P780
CPU: MT6589, 4 ядра х 1,2 ГГц

Linpack for Android Single Thread: 62.844
Linpack for Android Multi-Thread: 190.584
Mono Linpack: 49.8120
UFO just landed and posted this here
UFO just landed and posted this here
Код который я использую есть прямой порт Linpack.java, используемой в Linpack for Android. Это необходимо для сравнения производительности двух VM. На мой взгляд чем меньше различий, тем точнее тест (хотя я например не знаю каким образом там реализован многопоточный тест), однако ваша оптимизация сама по себе интересна.
извените за глупый вопрос, сама «моно машина» (ну чтото вроде JVM) встроенна в андроид? или идет внутри аппликейшена который написан на mono с#? где можно про это почитать.
UFO just landed and posted this here
Пушните все изменения?
И какая у вас спецификация, что дает 1.6 GFLOPS? У меня на Phenom II 945 X4 3Ghz больше 0.4 GFLOPS не выдает.
UFO just landed and posted this here
UFO just landed and posted this here
Тестировал я, как очевидно, разность в производительности разных VM. Естественно для этого нужно какое-то мерило, и LINPACK тут вполне подходит.

Кстати, а какой тест предложите вы? Сначала я хотел добавить whetstone, а теперь подумываю об одном из олденовских тестов, например bisort или health. Хорошие, мощные тесты.
Протестировали бы лучше плавность скрола таблиц со сложными ячейками — вот что действительно волнует пользователей.
скроллинг и там и там одинаковый, так как моно пользуется тем же нативным контролем и просто вызывает его через обертку
самый главный тормоз в прокрутке в Android — метод viewForItem, который возвращает следующую ячейку. Т.е. все упирается в его быстродействие — количество оберток вокруг него.
UFO just landed and posted this here
Согласен с вашим комментарием. Самое важное для разработчиков — будут ли Xamarin-приложения столь же отзывчивыми, как нативные. Флопсы здесь ни при чем.
Естественно. Видео

Единственное место где заметна разница в производительности — холодный старт приложения. C# сборки надо еще загрузить…
С этого места поподробней, всё-таки выгружать фоновые приложения из памяти Android любит.
А. Ну пол секунды — это не критично…
Sign up to leave a comment.

Articles