|   |   | 
| 
 | Если обезжирить CF, будет ли конфа занимать меньше места в памяти? | ☑ | ||
|---|---|---|---|---|
| 0
    
        Гений 1С гуру 06.04.23✎ 12:14 | 
        Я смотрю БП3 кушает по 1-2 Гб памяти. Если выкинуть из нее драйвера БПО и прочие ненужные макеты, будет ли меньшая по размеру CF занимать меньший объем памяти?     | |||
| 1
    
        Мультук гуру 06.04.23✎ 12:20 | 
        (0) 
 Лучше сразу выкинуть БП3 и купить бухам счёты. Чего зря людей мучать. | |||
| 2
    
        lodger 06.04.23✎ 12:43 | 
        (0) очевидно, Ватсон, меньше памяти на CF - меньше общий расход памяти.     | |||
| 3
    
        unenu 06.04.23✎ 12:53 | 
        (0) кривой отчет "все по всем" все равно сожрет всю память     | |||
| 4
    
        KJlag 06.04.23✎ 12:55 | 
        конфу под замок, и все изменения в расширение?     | |||
| 5
    
        evorle145 06.04.23✎ 12:54 | 
        (0) обычно дешевле памяти докупить или платить программисту за такую работу... да еще потом обновление станет дороже...     | |||
| 6
    
        magicSan 06.04.23✎ 13:02 | 
        нет, драйвер загружается когда нужен и весит копейки     | |||
| 7
    
        Chai Nic 06.04.23✎ 13:07 | 
        Пока радикально не поменяют способ хранения метаданных, пока не откажутся от хранения конфигурации в блобе - так и будет. Всё равно все метаданные распаковываются в память и лежат там. Ну или не все, а к которым хоть раз было обращение. Потому что дергать каждый раз блоб слишком затратно. Вот и получаем жрущее память решение.     | |||
| 8
    
        Garykom гуру 06.04.23✎ 13:13 | 
        (0) У тебя не получится.
 Потому что есть особенность которую ты вроде как 1Сник со стажем походу не знаешь. | |||
| 9
    
        Serg_1960 06.04.23✎ 13:15 | 
        (0) Нет, не будет. Потому что нет прямой зависимостью между "объёмом" конфигурации и занимаемой оперативной памятью. "Ненужные" объекты конфигурации не грузятся в память до тех, пока к ним нет обращения. А если загружаются - то кэши не хранят данные вечно. Это же основы, это же букварь :(     | |||
| 10
    
        Serg_1960 06.04.23✎ 13:21 | 
        [уже уходя] Не всё так просто под луной - ничто не вечно под луной
 "Использование модулей с повторным использованием возвращаемых значений" https://its.1c.ru/db/v8std#content:724:hdoc | |||
| 11
    
        Chai Nic 06.04.23✎ 13:21 | 
        (9) Тем не менее, прожорливость растет со временем. Если лет 10 назад толстый клиент БП 3.0 (или рабочий процесс сервера) занимала порядка полугига в памяти, то теперь - раза в 3 больше..     | |||
| 12
    
        magicSan 06.04.23✎ 13:29 | 
        (10) это другое, там данные кеш руются чтоб на сервер не прыгать     | |||
| 13
    
        Chai Nic 06.04.23✎ 13:32 | 
        (12) Повторное возвращение значений - это кривой костыль, вызванный отсутствием глобальных переменных в управляемом приложении. А это отсутствие вызвано претензиями на суровый энтерпрайз с сотнями рабочих серверов и рабочих процессов в кластере.     | |||
| 14
    
        Garykom гуру 06.04.23✎ 13:34 | 
        (13) Эээ
 Ты ошибаешься и все перепутал | |||
| 15
    
        timurhv 07.04.23✎ 09:21 | 
        (5) может и дешевле, но в крупных конторах проще франчу платить)     | |||
| 16
    
        Chai Nic 06.04.23✎ 13:38 | 
        (14) В каком месте перепутал? Если бы были глобальные переменные, то можно было бы просто хранить там все значения, которые могли бы потребоваться несколько раз, не связываясь с "функциями, повторно возвращающими значение". Но глобальные переменные требуют привязки сеанса к одному рабочему процессу, чтобы было одно и то же адресное пространство для доступа к объектам в памяти. А это с суровым энтерпрайзом, где рпхост для выполнения серверного вызова выбирается какой попало, на основе неких критериев, не совместимо.     | |||
| 17
    
        Garykom гуру 06.04.23✎ 13:39 | 
        (13)
 1. Модули с повторным использованием возвращаемых значений никак не связаны с "отсутствием глобальных переменных в управляемом приложении" 2. Отсутствие "глобальных переменных в управляемом приложении" никак не связано с "суровый энтерпрайз с сотнями рабочих серверов и рабочих процессов в кластере" Достаточно одного сервера (серверного процесса) - если непонятно почитай про Stateful и Stateless 3. Глобальные переменные есть - Механизм временного хранилища | |||
| 18
    
        Garykom гуру 06.04.23✎ 13:40 | 
        (16) Ты понимаешь отличия ручного кэширования реализованного кодом
 От кэширования средствами платформ? | |||
| 19
    
        Chai Nic 06.04.23✎ 13:42 | 
        (17) "Достаточно одного сервера (серверного процесса) - если непонятно почитай про Stateful и Stateless"
 Сервер 1с нельзя отнести ни к тому ни к другому. На уровне сеанса он stateful, на уровне соединения- stateless. "Глобальные переменные есть - Механизм временного хранилища" Туда можно класть только то, что сериализуемо. Это не настоящие переменные, а имитация. С таким же успехом можно просто класть всё это во временные файлы. А вот попробуйте например COM-соединение таким образом сохранить? | |||
| 20
    
        Garykom гуру 06.04.23✎ 13:44 | 
        (19) >А вот попробуйте например COM-соединение таким образом сохранить?
 Эээ. А зачем его хранить когда оно не нужно? Ладно: 1. На клиенте оно хранится прекрасно. 2. На сервере оно тоже хранится прекрасно - в длительном фоновом задании. | |||
| 21
    
        Chai Nic 06.04.23✎ 13:46 | 
        (20) "На сервере оно тоже хранится прекрасно - в длительном фоновом задании."
 А как оно будет вызываться, через механизмы оповещений, с неким квантом опроса? А так чтобы моментально - никак? И чтобы напрямую работать с этим COM-объектом тоже никак? | |||
| 22
    
        Garykom гуру 06.04.23✎ 13:47 | 
        (19) И да.
 Применение "COM-соединение" в любом месте (не только тогда когда иначе никак) признак отсталости (грубо говоря deprecated) и непрофессионализма. Ибо в ближайшем будущем грядет переход сервером на ARM, не говоря уже что сейчас есть линукс, мак и андроид | |||
| 23
    
        Garykom гуру 06.04.23✎ 13:48 | 
        (21) Запускай толстого клиента и делай каком     | |||
| 24
    
        Гений 1С гуру 06.04.23✎ 13:48 | 
        (4) а конфа на замке может быть выгружена в файлы и загружена из них?     | |||
| 25
    
        Гений 1С гуру 07.04.23✎ 09:22 | 
        (5) почему дороже? По идее должно натянуться.     | |||
| 26
    
        Garykom гуру 06.04.23✎ 13:49 | 
        (23)+ ой там тоже "кванты опроса" :)     | |||
| 28
    
        Garykom гуру 06.04.23✎ 13:56 | 
        (22)+ https://v8.1c.ru/tekhnologii/sistemnye-trebovaniya-1s-predpriyatiya-8/
 Кто забыл то сервер 1С уже работает на ARM Да куча ограничений и багов | |||
| 29
    
        Chai Nic 06.04.23✎ 13:57 | 
        (22) Плохо что в 1с объявили COM депрекейтед, но не сделали свою функциональную альтернативу COM. Чтобы в активном режиме подключаться к чужой базе, прозрачно обращаться к её объектам и методам, без предварительной адаптации этой чужой базы.     | |||
| 30
    
        Garykom гуру 06.04.23✎ 14:00 | 
        (29) Это не 1С объявили что технология COM устарела а сама MS.
 ODATA уже есть, если хочешь RPC то блин любой готовый засунь или сам напиши. | |||
| 31
    
        Garykom гуру 06.04.23✎ 14:00 | 
        (30)+ И да.
 Включенный по умолчанию COM - это так то еще одна дырка. Нельзя так. | |||
| 32
    
        Chai Nic 06.04.23✎ 14:02 | 
        (31) Ну могли бы не включать по умолчанию, а сделать это галочкой в конфигураторе.     | |||
| 33
    
        Chai Nic 06.04.23✎ 14:03 | 
        +(32) Имеется в виду не в дереве конфигурации, а в настройках информационной базы..     | |||
| 34
    
        TormozIT гуру 06.04.23✎ 15:45 | 
        Ролей побольше удали     | |||
| 35
    
        VladZ 06.04.23✎ 15:48 | 
        (0) Посмотри цены на оперативку и забей.     | |||
| 36
    
        TormozIT гуру 06.04.23✎ 15:50 | 
        (19) Глобальные переменные - НЕ временное хранилище. Они НЕ сериализуются и существуют исключительно в клиентском контексте. Можешь держать в глобальной переменной любой объект как и в обычной переменной.     | |||
| 37
    
        Garykom гуру 06.04.23✎ 15:53 | 
        (36) Он хотел глобальные переменные на сервере
 Я ему привел аналог | |||
| 38
    
        TormozIT гуру 06.04.23✎ 15:58 | 
        (37) А, понял. Параметры сеанса и временное хранилище можно с натяжкой засчитать за аналог глобальных переменных.     | |||
| 39
    
        Eiffil123 06.04.23✎ 16:18 | 
        (30) технология устарела, а из экселя данные тащить надо )     | |||
| 40
    
        Chai Nic 06.04.23✎ 16:32 | 
        (38) С такой же натяжкой за глобальные переменные можно считать файлы на диске. Это не то, потому что переменная это именно объект в памяти, не обязательно сериализуемый.     | |||
| 41
    
        TormozIT гуру 06.04.23✎ 17:20 | 
        (40) Файлы на диске в большинстве случаев нельзя, т.к. они привязаны к локальной файловой системе. Перенос соединения на другой рабочий сервер 1С (rphost.exe на другом компьютере) сделает их невидимыми коду. А временное хранилище и параметры сеанса будут восстановлены.     | |||
| 42
    
        TormozIT гуру 06.04.23✎ 17:20 | 
        COM переживет еще всех нас     | |||
| 43
    
        Garykom гуру 06.04.23✎ 17:27 | 
        (42) Только внутри виртуалок с эмуляцией x86 и x86_64     | |||
| 44
    
        Garykom гуру 10.04.23✎ 10:50 | 
        (43)+ К сожалению нативная архитектура x86/x86_64 относительно скоро того, канет в лету
 ДЕЗИНФОРМАЦИЯ | |||
| 45
    
        ДедМорроз 06.04.23✎ 19:17 | 
        Идея C.O.M. достаточно простая - это набор заранее известных интерыейсов,которые один объект может предоставить другому.
 К сожалению,все забыли,что эта общая стоуктура присутствует во многих других местах. А вот ее реализация,которую использует 1с,в частности, IDispatch,считается уже устаревшей. Однако,идея реализации передачи данных сквозь процессы и машины никуда не денется. Опять же,изнутри C.O.M. очень проста и построена на интерфейсах IMalloc,IMarshal и IMoniker,реализация которых,на самом деле,от платформы не зависит. А с помощью Proxy.dll в одном процессе можно вместо Stub-процесса использовать свое приложение,причем независимо от операционной системы и процессора. Главное,правильно описать IMarshal и реализацию интерфейсов. | |||
| 46
    
        magicSan 06.04.23✎ 19:26 | 
        Где то недавно читал что глобальные переменные - дурость. 
 Хотелось бы услышать контекст необходимости в них | |||
| 47
    
        Гений 1С гуру 06.04.23✎ 19:40 | 
        Кстати, может 1С выдвинуть хотелку, чтобы она бинарные макеты не тянула в память вместе со всей CF или она и не тянет?     | |||
| 48
    
        Гений 1С гуру 06.04.23✎ 19:42 | 
        (47) + готово https://github.com/SeiOkami/OneS/issues/190     | |||
| 49
    
        Bigbro 06.04.23✎ 20:30 | 
        #$%^&!! теперь Г1С не только в ютубчик хабр инфостарт и жж а еще и на гитхаб испражняется((     | |||
| 50
    
        lodger 06.04.23✎ 20:46 | 
        (49) автор ветки мог и отклонить, если бы счёл исью полнейшим бредом.     | |||
| 51
    
        Гений 1С гуру 06.04.23✎ 20:58 | 
        (50) можно смоделировать. заливать в CF в макет файлы разного размера и проверять занимаемый объем памяти.     | |||
| 52
    
        magicSan 06.04.23✎ 21:23 | 
        (51) Нахера вообще было начинать ветку не проверив? По твоему мнению 50 юзверей просто запустив конфу уже выжирают 50 гигов?     | |||
| 53
    
        Гений 1С гуру 06.04.23✎ 21:31 | 
        (52) уфф, отлегло от сердца: https://geniy1s.ru/zagruzhaet-li-1s-v-pamyat-vsyu-cf/     | |||
| 54
    
        vde69 06.04.23✎ 21:32 | 
        (0) в 1с есть сборщик мусора, если на модуль (а в твоем случае это внешняя DLL) нет дискрипторов внутри 1с - на него удаляются все ссылки и позже удаляются дискрипторы процессов 1с, ну а потом и винда удаляет из памяти их при условии, что они не заняты другими процессами.     | |||
| 55
    
        Гений 1С гуру 06.04.23✎ 21:32 | 
        (54) это не внешняя DLL, а просто бинарный макет     | |||
| 56
    
        vde69 06.04.23✎ 21:34 | 
        (55) в бинарники DLL лежит, он сохраняется в темповую папку и от туда подключается в память (при необходимости)     | |||
| 57
    
        vde69 06.04.23✎ 21:35 | 
        (56) +
 кстати эта длл создана по технологии внешних компонент. все торг оборудование именно так работает... | |||
| 58
    
        vde69 06.04.23✎ 21:37 | 
        ну и потом я занимался сабжем (из бухгалтерии делал нетленку), что-бы выкинуть ненужное уйдет месяц, а у тебя может и год :)     | |||
| 59
    
        magicSan 06.04.23✎ 22:06 | 
        (53) Знаешь почему так????? Потому что интерпретатор! Ты думаешь демоническое обновление откуда?     | |||
| 60
    
        TormozIT гуру 06.04.23✎ 22:38 | 
        (0) Отключи все обработчики начала сеанса (УстановкаПараметровСеанса, ПриНачалеРаботыСистемы, ПередНачаломРаботыСистемы). Добавь в конфигурацию роль без RLS, дающую все права на все объекты. Создай нового пользователя и дай ему только эту роль. Запусти под ним тонкий клиент.     | |||
| 61
    
        vovastar 06.04.23✎ 22:49 | 
        Сергей, а какая вообще цель преследуется?
 Уменьшить, чтобы что? | |||
| 62
    
        TormozIT гуру 06.04.23✎ 22:55 | 
        (61) Чтобы сделать доклад на Рарус TechDays 2023. Ведь нашли же однажды серьезную проблему с неоправданным поеданием памяти ролями - https://infostart.ru/1c/articles/991247/     | |||
| 63
    
        vovastar 06.04.23✎ 23:03 | 
        (62) У Сергея ипотека. Ему надо деньги зарабатывать, а не по конференциям шляться.     | |||
| 64
    
        Serg_1960 07.04.23✎ 09:55 | 
        "Отлегло от сердца, значит, всё-таки работа с памятью сделана в 1С по уму."(с) - пятница удалась :)
 - открыл сеанс работы (520мб); - открыл журнал документов, документ на редактирование, печатную форму на просмотр (1200мб); - все открытые формы - закрыл, как бы вернулся к первоначальному состоянию; - объём занятой памяти начал уменьшаться и стабилизировался в районе 1100мб. 520мб-->1100мб. К чему это я вообще? Когда я в (10) указал ссылку, то я не предлагал это сделать поводом для спора... я лишь намекнул на то, что объём занимаемой памяти зависит не от "количества", а от "качества" алгоритмов конфигурации (если так можно выразиться) - одна неверная строка кода и память высасывается словно пыль пылесосом. Просто, тупо и без затей, например, достаточно вспомнить про "утечки памяти". | |||
| 65
    
        magicSan 07.04.23✎ 10:17 | 
        (64) Конфигурация?     | |||
| 66
    
        Serg_1960 07.04.23✎ 11:06 | 
        (65) Не принципиально.     | |||
| 67
    
        lodger 07.04.23✎ 11:14 | 
        (53) а. ты в файловой проверял? давай в к-с.     | |||
| 68
    
        magicSan 07.04.23✎ 11:19 | 
        (66) ерп, сделал все тоже самое память пть минут выше 500 не ушла после закрытия форм менее 100, но это на сеансе.     | |||
| 69
    
        Serg_1960 07.04.23✎ 16:56 | 
        (68) Это если тонкий и клиент-серверный вариант? А если толстый и файловый? Два гига с копейками?
 Я ж говорю - дело не только в конфигурации. | |||
| 70
    
        magicSan 07.04.23✎ 17:16 | 
        (69) толстый по сети такие данные гонять не будет, файловые на одной машине - там вообще смысл нету заморачиватся - однопользоватлеьская штука.     | |||
| 71
    
        ДедМорроз 08.04.23✎ 15:44 | 
        Ну,java,например,сразу отъедает кучу памяти,хотя ей,может быть,и не надо.
 И только недавно научилась возвращать память системе. Так что удивляться нечему. Если в системе куча свободной памяти,то зачем процессу ее возвращать,если она может понадобиться ? | |||
| 72
    
        Chai Nic 08.04.23✎ 16:21 | 
        (71) "зачем процессу ее возвращать,если она может понадобиться"
 Оголтелый эгоизм. Процесс должен понимать, что он в системе не один, и память может понадобиться ещё кому-то. Внезапно. | |||
| 73
    
        magicSan 08.04.23✎ 16:46 | 
        (71) нет, ставил недавно по приколу сонаркуб, малокушает ява     | |||
| 74
    
        ДедМорроз 08.04.23✎ 17:38 | 
        (73) так накорми и проверь - вернет съеденное или нет.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |