#0
by Гений 1С
Причем этим кэшированием можно управлять, кэшируемые функции нужно выносить в специальные модули. Правда кэш она хранит пять минут только в случае бездействия, это плохо. Но т.к. нет глобальных серверных переменных, такая хрень достаточно полезна... Интересно, чего там еще такого есть, скрытого!
#0
by Гений 1С
Причем этим кэшированием можно управлять, кэшируемые функции нужно выносить в специальные модули. Правда кэш она хранит пять минут только в случае бездействия, это плохо. Но т.к. нет глобальных серверных переменных, такая хрень достаточно полезна... Интересно, чего там еще такого есть, скрытого!
#4
by Гений 1С
Т.е. типо если Ф(А,Б,В) то в следующий раз Ф(А,Б,В) не вычисляется, а возвращается ранее вычисленный результат. Без изменения кода можно увеличивать производительность.
#7
by ОчкарикСлава
Много чего кэшируется, описано в практич. пособии разработчика, читал гдето когдато...
#11
by nop
Что значит "кэшировать функции" ?? Результат функции кэшировать очень сложно. Кэшируется код? Вот это полезность, так полезность...
#12
by IamAlexy
вопрос в том что есть кеширование функции.. если значение какоелибо то нафига его кешировать если можно в переменную записать. если объект - то чем это отличается от кеширования объектов??? соответственно функция вызывается тогда когда нужно именно что то новое получить... все старье в переменных... накой фиг ее кешировать то? :)
#13
by H A D G E H O G s
Мне вчера сказали, что всех Гениев 1C, а также Гениев 1АБ, и также Гениев 18+ отправляют на Байкал омуля добывать.. Ссылку привести тоже не могу.
#14
by Rovan
как это Кэшируется код? код в смысле 1С.exe ? - за это мс вынь отвечает или код в конфа ? - дык она в пять грузится вся
#17
by Гений 1С
А нефиг такую функцию вызывать для остатков по регистрам. Кешируется по параметрам, т.е. по сигнатуре параметров
#22
by i-rek
не может быть. Если б это было так, оборотка запускалась бы первый раз долго, второй раз мгновенно. Этого не происходит ))
#24
by IamAlexy
но ведь в это же бред. над вами прикололись а вы повелись? если мне нужно результат Ф(а,б,с) использовать повторно то я сделаю так: ну и дальше буду играться с переменной "результат". а когда мне потребуется обновить значение переменной я повторно вызову функцию нафига мне КЕШИРОВАТЬ РЕЗУЛЬТАТ РАБОТЫ ФУНКЦИИ????
#25
by Гений 1С
ну например если у тебя есть функция Ф(А,Б), ты ее вызываешь Ф(Пользователь Петров, ОсновнаяВалюта) = Доллары, то в следующий раз когда ты вызовешь Ф(Пользователь Петров, ОсновнаяВалюта), она вернет Доллары, не вычисляя. А вот если ты спросишь Ф(Пользователь Иванов, ОсновнаяВалюта) или Ф(Пользователь Петров, ОсновнойСклад), она опять будет вычислять.
#29
by Гений 1С
так это надо еще прикручивать... к тому же для оборотки это юзать бессмысленно. ;-) Не знаю, есть у них функция очистки кэша? вообще как обычно в 1с бывает, первые версии кривые и "нязграбныя", как говорят в белоруси
#33
by Гений 1С
ну ты тормоз... я тебе идиотский пример специально привел. Кэш используется, когда ты не знаешь, из каких мест кода будет вызываться функция, но знаешь, что можно захешировать результат на все время жизни сеанса, например
#36
by Гений 1С
так вот, для алексия еще пример. Допустим ты считал настройку пользователя функцией НастройкаПользователя("ОсновнаяВалюта"). Чтобы в след раз не дергать регистр, функция хешируется. Можно конечно все настройки занести в глоб переменную, но тогда мы тратим лишнее время на чтение тех настроек, которые не нужны. Можно эмулировать кэш, но в данном случае все происходит на автомате.
#40
by Гений 1С
иногда имеет смысл кэшировать, например те же настройки пользователя. А если БД поменялась, можно сбросить кэш. Правда 1сники сбрасывают кэш целиком, мазафакеры.
#41
by Гений 1С
1с не рекомендует использовать много параметров сеанса. Это раз, во вторых тогда кэширование придется ручками прописывать
#42
by SilentMan
Я всегда знал, что читать ты не умеешь, лучше-бы ты писать не умел. Кэшировать умеет 8.2 ...
#43
by Гений 1С
Вот тебе живой пример. Я использую конвертацию одних проводок в другие. Для каждого счета я получаю список правил конвертацией функцией СписокПравилКонвертации(Сч). Так вот, я могу конечно составить соответствие и проверять, вычислял я уже список правил или нет, а могу тупо закэшировать результат функции.
#45
by Гений 1С
Точно? Дело как было? я подумал, что неплохо было бы кэшировать, выдвинул тему на партнерском, а мне ответили, что это уже работает. ;-)
#47
by IamAlexy
хм.. честно говоря рациональное зерно есть но по сути это пушки по воробьям.. чо то мне сложно придумать что то более серьезное с кешем функции чем настройки пользователя которые можно во первых хранить в параметрах сеанса ибо их как правило немного... а париться с кешем ради того чтобы лишний раз не прочитать основную валюту пользователя - имхо бессмысленно совершенно...
#48
by SilentMan
При этом ты настолько ослеп, что раздел форума (куда тебя послали) прочитать не смог ...
#55
by Регистратор
Да достижение офигеть тормознутость своего интепретатора 1с пытается лечить кешированием результатов выполнения функций не обращающихся к данным :)))
#56
by H A D G E H O G s
1) Дмитрий, Дмитрий Сергеевич, Дима, Димочка, Димон, Димыч и даже Hadgehogs, но не как не ежик. Сергей, постарайся это понять и запомнить. Это совет. 2) Как мне включить это чудо - кэширование?
#59
by Гений 1С
Спили мушку, включи кэширование... Кэширование автоматом не происходит. Функция должна быть в общем модуле, допускающем кэширование
#61
by MSensey
Гений, у тебя в последнее время какое-то обострение. Отдохни чуток ps в 8.2 реализован
#64
by H A D G E H O G s
Гений, из тебя бы вышел показательный (знаковый) пользователь.. <<Сегодня только узнал что 1С81 умеет кэшировать>> <<в 8.2. тестируй, лана?>> Это нормально..
#66
by trdm
Совершенно тупая, затратная и ненужная фигня. Лучше бы ресурс тратили на более умные вещи..
#68
by H A D G E H O G s
А если в расчете участвуют глобальные переменные, которые передаются не через параметры функции. И между вызовами они изменились. 1С это учтет?.
#70
by Гений 1С
Не, борис, ты не прав, надо уметь готовить. У меня документ грузился 30 минут, после кеширования (правда ручками написал) - 3 минуты... А тут можно чисто автоматизировать без ручек.
#72
by Гений 1С
функции хэшируются не по ссылке, а по значению параметров, если ты этого еще не понял
#75
by Гений 1С
А, я понял о чем ты. Ты кэшируемые функции пишешь сам, поэтому ответственность за их код на тебе. Не юзай глобальные (волитарные) переменные в коде кэшируемых функций. Для того чтобы юзать кеш, не любая функция годится
#78
by Дерево
в написано : "У меня документ грузился 30 минут, после кеширования (правда ручками написал) - 3 минуты... А тут можно чисто автоматизировать без ручек." вот как это сделать и делись
#79
by Гений 1С
я проанализировал ход выполнения кода, обнаружил, где она больше всего жрет времени, вынес это в кэши, например: Кэширование поиска значений по ключу: Запрос создаю только один раз, а не в цикле, т.е. не тратится время на его компиляцию: Кэширование обращения к метаданным: Ну и еще много других мест. Все это дало прирост производительности в 10 раз. ;-) Но можно было бы юзать кэши 1с, если бы она это сделала нормально, а не как всегда.
#82
by H A D G E H O G s
Не придерайтесь к словам. А вообще приблуда бесполезная, имеющая смысл только для ленивых/забывчивых/студентов.
#83
by Гений 1С
имеющая смысл для оптимизаторов, чтобы не писать такие многоэтажки, как в , хотя конечно если бы в 1с была возможность статических переменных и серверных глобальных переменных, кэширование было бы менее востребовано.
#86
by Гений 1С
придираться к буквам (буквоедство) - это характерная черта программистов... Реально, замечаю часто только у программеров. Для остальных важнее смысл, а не форма. Видимо сказывается нервная дрожь при ошибке одной буквы в идентификаторе и ругательство синтакс чека.
#88
by Гений 1С
Вот запрос = "...."; можно было бы прохешировать и не тратить время на компиляцию запроса...
#91
by Живой Ископаемый
вы замучали! буквы "х" и "к" даже не рядом, следите за пальцами когда печатаете, а то меня в мозгу начинаются расходящиеся процессы...
#92
by Дерево
{Форма.Форма(3,21)}: Переменная не определена (П) КэшПоискЗначений = <<?>>П.Кэши.ПоискЗначений[ВидСубконтоУУ]; {Форма.Форма(3,42)}: Переменная не определена (ВидСубконтоУУ)
#97
by MSensey
Гений, я не придераюсь, и не к буквам. А тому что ты не различаешь кэширование от хеширования.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v8 строка подключения V8.Connect
- Волшебнику и всем кто поможет по теме "v8 УРБД на v8 за четыре шага"
- v8: при v8 = Новый COMОбъект("V8.Application") дает ошибку ..
- v8: Не могу подключиться из V8 к V8
- v8: есть ли аналоги openconf для 1с v8
- v8: Как удалить 1С v8 ?
- Тонкий клиент: текущие вызовы / накопленные вызовы
В этой группе 1С
- Чем прикрепить напольный кабельный канал к полу ,выложенному плиткой ?
- "ручное" передвижение границы последовательности
- Использование в запросе функций из общих модулей
- COMОбъект, уникальный идентификатор
- Странная ситуация при обмене данными. Гиганты мысли, подскажите !
- Какая информация содержится в двухмерном штрихкоде?
- Windows Mobile 6.1 на iPhone 3G.
- Как вывести в макет результат универсального отчета?
- Трудности при подключении 2 ФР к УТ.
- Регистр сведений периодический
- Максимизированное окно формы. Formex?
- ККМ в терминальной сессии
- v7: Вопрос по налоговому учету
- ХранилищеДополнительнойИнформации
- Обрезка базы
- 7-zip архивирование изменённых файлов
- А как в УТ правильно зарплату с кассы списывать?
- Как в запросе задать условие аналогичное "Содержит" для сравнения строк?
- Как заполнить таблицу справочника в восьмерке прямым SQL-запросом?
- не сохраняется значение выбранного элемента при открытии формы с отбором