Вариант В
Наименование теста |
Количественный показатель |
Оптимизация выкл |
Оптимизация вкл |
Очистка базы |
- |
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 |
Вариант С
Наименование теста |
Количественный показатель |
Оптимизация выкл |
Оптимизация вкл |
Очистка базы |
- |
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 (или собрать самостоятельно из исходников).