Привет,
Есть такая штука FBA Toolkit, которая предназначена для создания мобильных приложений под Android. Конечно, не сравнится с “Мобильной платформой 1С 8.3”, но некоторые “вкусные плюшки” имеет. А недавно этот фреймворк стал вообще бесплатным и открытым. В связи с этим было бы интересно сравнить производительность с мобильной платформой 1С 8.3.
Поэтому, наше сравнение будет весьма условным. Однако тестирование сможет ответить на вопрос: “Какой же вообще производительности по работе с локальной базой данных стоит ожидать от мобильного приложения?”
Итак, начали.
В тестировании участвует Nexus 4 c последней стоковой прошивкой Android 5.1.1 (“рабочая лошадка” используется постоянно около 2 лет), уровень заряда аккумулятора 50%. Во время тестирования подключена зарядка.
Варианты замеров (A, B, С, D) отличаются только количественными показателями и соответствуют аналогичным (А, Б, В, Г) из исходной статьи «Тестирование мобильной платформы 1С»
Вариант А
Наименование теста |
Количественный показатель |
Оптимизация выкл чч:мм:сс.мс |
Оптимизация вкл чч:мм:сс.мс |
Очистка базы |
- |
168 |
791 |
Создание номенклатуры |
100 |
1.271 |
17 |
Создание штрихкодов |
200 |
2.398 |
48 |
Создание документов “Приход” |
100, в ТЧ - 50 |
57.715 |
769 |
Создание документов “Установка цен” |
10, в ТЧ - 100 |
11.399 |
151 |
Заполнение регистра “Цены номенклатуры” |
100 |
979 |
18 |
Срез первых по 1 номенклатуре |
- |
7 |
4 |
Срез последних по 1 номенклатуре |
- |
8 |
4 |
Пометка на удаление всех док “Приход” курсором |
100 |
817 |
100 |
Пометка на удаление всех док “Установка цен” (выборка) |
10 |
95 |
8 |
Удаление всей номенклатуры |
23 |
15 |
|
Очистка регистра штрихкодов |
55 |
34 |
|
Общее время |
- |
00:01:14:955 (74955) |
00:00:01.959 (1959) |
Вариант В
Наименование теста |
Количественный показатель |
Оптимизация выкл чч:мм:сс.мс |
Оптимизация вкл чч:мм:сс.мс |
Очистка базы |
- |
743 |
8.362 |
Создание номенклатуры |
1000 |
8.797 |
189 |
Создание штрихкодов |
6000 |
1:09.351 |
1.516 |
Создание документов “Приход” |
100, в ТЧ - 500 |
9:39.304 |
8.120 |
Создание документов “Установка цен” |
10, в ТЧ - 500 |
57.181 |
871 |
Заполнение регистра “Цены номенклатуры” |
1000 |
14.382 |
234 |
Срез первых по 1 номенклатуре |
- |
10 |
10 |
Срез последних по 1 номенклатуре |
- |
7 |
9 |
Пометка на удаление всех док “Приход” курсором |
100 |
1.080 |
835 |
Пометка на удаление всех док “Установка цен” (выборка) |
10 |
78 |
5 |
Удаление всей номенклатуры |
65 |
49 |
|
Очистка регистра штрихкодов |
325 |
268 |
|
Общее время |
- |
00:12:11:323 (731323) |
00:00:20.468 (20468) |
Вариант С
Наименование теста |
Количественный показатель |
Оптимизация выкл чч:мм:сс.мс |
Оптимизация вкл чч:мм:сс.мс |
Очистка базы |
- |
46.225 |
45.432 |
Создание номенклатуры |
10000 |
1:42.626 |
1.924 |
Создание штрихкодов |
60000 |
17:36.336 |
59.918 |
Создание документов “Приход” |
200, в ТЧ - 500 |
17:43.866 |
19.353 |
Создание документов “Установка цен” |
20, в ТЧ - 1000 |
3:28.033 |
3.695 |
Заполнение регистра “Цены номенклатуры” |
10000 |
2:42.276 |
2.209 |
Срез первых по 1 номенклатуре |
- |
64 |
77 |
Срез последних по 1 номенклатуре |
- |
61 |
73 |
Пометка на удаление всех док “Приход” курсором |
200 |
1.753 |
511 |
Пометка на удаление всех док “Установка цен” (выборка) |
20 |
189 |
006 |
Удаление всей номенклатуры |
303 |
235 |
|
Очистка регистра штрихкодов |
3.112 |
2.533 |
|
Общее время |
- |
00:44:04.844 (2644844) |
2:15:966 |
Вариант D
Наименование теста |
Количественный показатель |
Оптимизация выкл чч:мм:сс.мс |
Оптимизация вкл чч:мм:сс.мс |
Очистка базы |
- |
1:51.031 |
44.325 |
Создание номенклатуры |
10000 |
1:31:022 |
1.787 |
Создание штрихкодов |
120000 |
30:22:738 |
1:11.579 |
Создание документов “Приход” |
200, в ТЧ - 1000 |
34:31:577 |
41.862 |
Создание документов “Установка цен” |
100, в ТЧ - 1000 |
16:49.515 |
19.287 |
Заполнение регистра “Цены номенклатуры” |
10000 |
2:25.624 |
2.651 |
Срез первых по 1 номенклатуре |
- |
59 |
85 |
Срез последних по 1 номенклатуре |
- |
76 |
68 |
Пометка на удаление всех док “Приход” курсором |
200 |
1.700 |
310 |
Пометка на удаление всех док “Установка цен” (выборка) |
100 |
727 |
10 |
Удаление всей номенклатуры |
290 |
273 |
|
Очистка регистра штрихкодов |
6.809 |
5.608 |
|
Общее время |
|
1:27:41.168 (5261168) |
00:03:07.845 (187845) |
Примечания по операциям:
“Очистка базы” - очищается объем, заполненный предыдущим тестом
“Срез первых/последних” - оптимизация SQL не применяется (т.к. это сделано изначально)
Бонус
Замер выборки всех данных и конвертация в JSON для последующей отправки на сервер:
Вариант А |
00:00:28.204 (28204) |
Вариант D |
00:29:34.206 (1774206) |
Выводы
При использовании движка FBA Toolkit в штатном режиме (через OrmLite) он немного проигрывает мобильной платформе 1С по производительности. При увеличении объема обрабатываемых данных этот проигрыш увеличивается. Впрочем, если для вариантов A и B результаты вполне приемлемые, то для C и D уже нет.
Хотя и сложно представить реальный сценарий использования, аналогичный тестам C и D, но если это потребуется, то с помощью FBA эту задачу можно решить. Здесь на помощь приходят прямые запросы к базе данных. Если планируете массовую запись/чтение больших объемов данных, лучше сразу использовать этот вариант, производительность увеличивается в десятки, а то и в сотни раз.
Для мобильной платформы 1С аналогичной возможности нет.
Желающие могут принять участие в тестировании, для этого достаточно скачать и установить на свой android приложение fba_sample6_perfomance-debug.apk (или собрать самостоятельно из исходников).
Буде признателен, если поделитесь результатами в комментариях. Спасибо.