|
Если обезжирить 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) так накорми и проверь - вернет съеденное или нет.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |