gifts2017

Сравнение производительности FBA Toolkit c мобильной платформой 1С 8.3

Опубликовал Alex D (begsha) в раздел Программирование - Мобильные приложения

В статье произведен сравнительный анализ производительности при работе с локальной базой мобильного приложения

Привет,

Есть такая штука FBA Toolkit, которая предназначена для создания мобильных приложений под Android. Конечно, не сравнится с “Мобильной платформой 1С 8.3”, но некоторые “вкусные плюшки” имеет. А недавно этот фреймворк стал вообще бесплатным и открытым. В связи с этим было бы интересно сравнить производительность с мобильной платформой 1С 8.3.

На Инфостарте есть отличная статья “Тестирование мобильной платформы 1С” где подробно описаны тесты для 1С и есть результаты замеров. Аналогичные тесты были созданы и для FBA Toolkit, исходный код приложения доступен здесь.


Конечно, полностью идентичные тесты создать не удалось ввиду того, что часть функционала мобильной платформы 1С просто не может быть эмулирована с помощью FBA. Например, не поддерживаются регистры накопления (как следствие операции проверки остатков и оборотов); нет “проведения” и “отмены проведения” документов на мобильном клиенте и т.п.

Поэтому, наше сравнение будет весьма условным. Однако тестирование сможет ответить на вопрос: “Какой же вообще производительности по работе с локальной базой данных стоит ожидать от мобильного приложения?”

Дополнительно эти тесты можно трактовать как “Тестирование движка OrmLite по сравнению с чистым Sqlite” т.к в основе FBA для работы с локальной базой данных используется именно OrmLite. Когда флаг “Оптимизация” выключен, запросы к базе выполняются через  OrmLite, а когда включен - используются “raw sql instruction”.

Итак, начали.

В тестировании участвует 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 (или собрать самостоятельно из исходников).

Буде признателен, если поделитесь результатами в комментариях. Спасибо.

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Вадим Латышев (pro1c@inbox.ru) 28.09.15 02:14
а в чем профит от этого сравнения?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа