Имя: Пароль:
1C
 
Кэширование констант
0 fisher
 
10.02.11
11:14
Ответьте кто в курсе, плиз - сабж имеет смысл на 8.2 или нет?
1 Dem1urg
 
10.02.11
11:32
Сабж имеет, смысл - нет.
2 fisher
 
10.02.11
11:41
(1) Ваша формулировка недостаточно развернута для однозначной трактовки.
3 Живой Ископаемый
 
10.02.11
11:43
2(2) да и ваша тоже
4 fisher
 
10.02.11
11:48
(3) Думал, понятно спросил.
Если ошибся - сформулирую вопрос по другому.
Сервер приложений 8.2 кэширует часто опрашиваемые константы или конструкция Константы.ИмяКонстанты.Получить() однозначно ведет к запросу в БД?
5 fisher
 
10.02.11
11:48
Т.е. имеет ли смысл самому кэшировать часто опрашиваемые константы?
6 Defender aka LINN
 
10.02.11
11:49
Смотря где ты эту самую конструкцию разместишь.
7 fisher
 
10.02.11
11:51
(6) В моем случае - в общем модуле.
А какие есть отличия в каких вариантах?
8 Живой Ископаемый
 
10.02.11
11:51
2(4) Просто сервер БД таблицу констант тоже кэширует. Поэтому даже если сервер 1С не кэширует, то все равно второе обращение будет быстрее первого.
9 fisher
 
10.02.11
11:55
(8) Понятно, что сервер БД чего-то там умеет как-то кэшировать. Вопрос - насколько эффективно в данном случае?
Т.е. имеет ли смысл изобретать велосипеды?
10 acsent
 
10.02.11
11:57
В ут11 есть кэширование констант
11 acsent
 
10.02.11
11:58
ЗначениеНастроекПовтИсп.ПолучитьЗначениеКонстанты(ИмяКонстанты)
12 Живой Ископаемый
 
10.02.11
12:01
настолько эффективно, насколько он настроен. выставлен ли селфтюнинг или выставлен ли сразу большой, и какой порог грязных записей в кэше установлен.
13 fisher
 
10.02.11
12:07
(12) Ответ настоящего программиста из анекдота. Абсолютно правильный и никому не нужный.
Быстрее оказалось самому замерить.
Кэшировать однозначно имеет смысл.
10000 обращений заняло на моих ресурсах около 6 секунд.
В то время как кэширование позволило свести время выполнения к паре десятых секунды.
14 Stepa86
 
10.02.11
12:11
(13) ну если тебе надо 10 000 раз обращаться к значению константы, то ее вообще имеет смысл на переменной сохранить, а вот если ты ее опрашиваешь раз в час и за этот час велика вероятность, что она изменится, то кешировать как то не очень...
15 Живой Ископаемый
 
10.02.11
12:12
2(13) ты странный... Не указав условий, хотел получить ответ. Запомни нынешний опыт, по-другому кроме как сам - не бывает.
16 fisher
 
10.02.11
12:13
(14) Речь, конечно же, о ресурсоемких алгоритмах с большим количеством итераций. В моем случае - о УРБД.
В переменной не получается. В параметре сеанса придется...
17 Mitriy
 
10.02.11
12:15
поставь в свойствах общего модуля повторное использование и засунь туда функцию получения констант... и не парься...
18 Stepa86
 
10.02.11
12:15
(16) можно использовать кеширующие модули от 8.2, можно юзать глобальные переменные, параметры сеанса и может что нить еще... или вообще забить, потому что обращение к константе наврятли узкое место в твоем алгоритме
19 Mitriy
 
10.02.11
12:18
(18) ну почему вряд ли? Может, там на фиг константы не нужны... тогда узкое...
20 fisher
 
10.02.11
12:19
(17) Вариант... Для неизменяемых констант. Мне подходит.
21 Stepa86
 
10.02.11
12:25
(19) если самое узкое место это получение значения константы, то или алгоритм херовый или он не нуждается в оптимизации... других вариантов не вижу
22 Mitriy
 
10.02.11
12:28
(21) когда маааленьких узких мест слишком много, получается большааая ж...
23 fisher
 
10.02.11
12:29
(18) Глобальные переменные не вариант.
Параметры сеанса приятнее использовать по прямому назначению.
Кэширующий модуль - самое оно.
(21) толсто
24 fisher
 
10.02.11
12:40
Докладаю.
Обошлось без неприятных неожиданностей.
Кэширующий модуль работает практически не медленнее кэширования в переменной.
Независимо от того, куда вы едете — это в гору и против ветра!