|
Попытки, транзакции и скорость работы мобильной платформы. | ☑ | ||
---|---|---|---|---|
0
shulerr
22.12.14
✎
14:31
|
Всем привет и результативного понедельника. Замерял ли кто-нибудь влияние попыток и транзакций на скорость выполнения кода? В каких ситуациях их лучше не использовать? Есть ли методы оптимизации кода для мобильной платформы, отличные от стандартных? Заранее спасибо).
|
|||
1
Ник второй
22.12.14
✎
14:32
|
В однопользовательской работу вообще пофиг, что есть транзакция, что нет.
|
|||
2
shulerr
22.12.14
✎
14:36
|
(1) это из-за блокировок получается? Сам механизм транзакции не подразумевает запись данных "в сторонку" и удаление их при ошибке? Если так, то работать должно раза в 2 медленнее?
|
|||
3
shulerr
22.12.14
✎
15:21
|
Ну вот есть такой фреймворк, Qt называется. За основу взят С++. Там одно время было запрещено использование try по причине тормозов, видимо. В .net тоже не рекомендуют ими злоупотреблять. Так где же грань добра и зла?))
|
|||
4
Fragster
гуру
22.12.14
✎
15:23
|
(1) нет
|
|||
5
shulerr
22.12.14
✎
15:56
|
(4) почему? Где почитать?
|
|||
6
hhhh
22.12.14
✎
15:58
|
(3) вы по-нормальному делайте. Сервер на обычном компьютере. А на мобильных клиенты. Тогда на них никаких попыток не будет.
|
|||
7
Fragster
гуру
22.12.14
✎
16:01
|
(5) потому что нужно хранить изменения, которые нужно разом откатить по исключению, или применить по завершению транзакции
|
|||
8
Fragster
гуру
22.12.14
✎
16:01
|
(6) скажи это мобильным агентам/экспедиторам и прочим
|
|||
9
Ник второй
22.12.14
✎
16:01
|
(4) Копеечную разницу не учитываем.
|
|||
10
Fragster
гуру
22.12.14
✎
16:02
|
(9) она копеечная, если один объект менять. а если 1000000, то отнюдь не копеечная
|
|||
11
Ник второй
22.12.14
✎
16:04
|
Представил мобильного агента изменяющего 1000000 записей за раз.
) |
|||
12
shulerr
22.12.14
✎
16:07
|
(11) Обмен данными на мобильном устройстве в руках представителя именно это и делает. Цены/скидки/остатки и т.д.
|
|||
13
shulerr
22.12.14
✎
16:11
|
С транзакциями понятно. А попытки?
|
|||
14
Ник второй
22.12.14
✎
16:24
|
(12) У Вас что вся база пересчитывается при каждом обмене? 0_о
|
|||
15
Fragster
гуру
22.12.14
✎
16:25
|
(14) ну придут тебе обновленные цены/остатки на 100000 номенклатуры
|
|||
16
Fragster
гуру
22.12.14
✎
16:26
|
еще какая-нибудь лажа
|
|||
17
shulerr
22.12.14
✎
16:31
|
Не, не вся. Там просто справочник товаров большой. У каждого клиента своя скидка на разные позиции товара. Т.е., количество записей в регистре скидок = количество товаров * количество клиентов. Плюс остатки. А так, то, что нужно изменить, выбирается запросом. Прочитанные данные в виртуальную таблицу кладутся. Достаточно быстро работает.
|
|||
18
Ник второй
22.12.14
✎
16:48
|
(17) И что эта вся белеберда в разных таблицах хранится?
|
|||
19
shulerr
22.12.14
✎
16:51
|
(18) в разных. Справочники, регистры сведений.. Все как обычно. Только мы от темы отошли.
|
|||
20
Ник второй
22.12.14
✎
16:52
|
(19) Ты же в сторону скорости смотришь, вот одна явная загвоздка.
|
|||
21
UnknownNick
22.12.14
✎
16:56
|
хахах, смешно, кросс-платформенный конструктор и скорость работы, что-то тут лишнее :)
|
|||
22
shulerr
22.12.14
✎
17:01
|
(20) Не очень понял. А в чем загвоздка?
(21) 5 торгпредов уже неделю бэтатестят. Говорят, всё норм. За исключением одной ошибки, которую не могу отловить никак. Для этого нужно засунуть запись данных в транзакции и при возникновении беды выдавать осмысленные сообщения. По умолчанию получаем только "В приложении возникла ошибка". По этому и спрашиваю, а не станет ли моё чудо-творение сильно тормозить, если я расставлю эти транзакции и попытки где мне нужно? |
|||
23
Ник второй
22.12.14
✎
17:12
|
(22) Ну как бы миллион таблиц , когда нужно только информацию показывать агенту.
Я бы остатки загнал в справочник Номенклатуру, тогда проще делать форму подбора, и она будет явно намного быстрее отрабатывать. |
|||
24
Ник второй
22.12.14
✎
17:13
|
(22) Давай что за ошибка.
|
|||
25
Garykom
гуру
22.12.14
✎
17:13
|
(17) посоветовал бы вынести этот "большой" наружу из мобильной 1С и засунуть в туже sqlite
|
|||
26
UnknownNick
22.12.14
✎
17:17
|
чтобы все работало надежно и моментально быстро, нужно использовать свои визуальные таблицы и свой движок базы данных, тогда будет результат, как в агентоиде.
|
|||
27
Garykom
гуру
22.12.14
✎
17:19
|
(26) угу и цена такая же будет а не "почти бесплатно" и так же дописать/допилить легко будет
|
|||
28
shulerr
22.12.14
✎
17:20
|
(25) на это мы с ними не договаривались. Другой порядок цен. (24) "В приложении возникла ошибка", после чего вылет. Пока это всё. Завтра зальем релиз с внятными сообщениями. Не получится - логи сделаю.
(26) вот блин, мне бы таких продажников... |
|||
29
Ник второй
22.12.14
✎
17:36
|
(26) ню ню )))
|
|||
30
DitriX
22.12.14
✎
17:52
|
"В приложении возникла ошибка"
Это вы НИКАК не отловите. Никак, это значит - ВООБЩЕ НИКАК :) это приблизительно тоже самое, что сделать зацикливание в стационарной 1С, а потом ловить из самой же 1С - краши, при чем краши всего приложения в целом. Но в стационарной хоть журнал логов есть, а в мобильной - пусто. Так что выход только один - документаруйте каждый шаг - записью данных в лог (где лог - некий регистр сведений). Например: ЗагрузкаДанных() Лог(1) НайтиПоКоду() Лог(2) Записать() Лог(3) И если после падения в крит - вы сможете понять, на каком этапе был крит. Для удобства, можно писать данные в logcat андроида, что бы не плодить не нудные регистры. Но это уже только при помощи утилит можно делать. И да, скорость снизится, но у вас выхода нет :) С понедельником :) |
|||
31
DitriX
22.12.14
✎
17:53
|
но а вообще, на 8.3.5 - у меня давно критов не было, очень давно.
|
|||
32
shulerr
22.12.14
✎
18:07
|
(31) птицу сделаем "Вести журнал отладочной информации" в настройках. или как-нибудь еще непонятнее, чтобы не отключали)). Регистр тереть периодически. А вообще, спасибо.
|
|||
33
shulerr
23.12.14
✎
07:39
|
Кстати, а где лежит база данных? И в каком формате?
|
|||
34
UnknownNick
23.12.14
✎
07:56
|
какая разница, там только библиотек в развернутом виде на 100 мб. на надежность скорострельность смело забиваем болт.
|
|||
35
shulerr
23.12.14
✎
08:05
|
(33)+ может ее открыть чем-то можно?
|
|||
36
DitriX
25.12.14
✎
01:30
|
(33) можно открыть из 1СTools. Вытащить конфу (но потом ее в стационарной не откроете).
Можно сделать chkdbl на этой базе. Она ее сожмет и проверит целостность. Это, по сути, формат файловой 1С стационарной. Но доступ можно получить только под рутом. |
|||
37
tridog
25.12.14
✎
09:38
|
(1) Куясе. А как же ACID?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |