Кэширование констант #532644


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

В этой группе 1С