• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Большое Количество Ссылок Nothing

  • Автор темы Serduko
  • Дата начала
S

Serduko

Вопрос больше теоретический, без примера.
У меня есть объект, в нем второй объект, в этом объекте ссылки на несколько NotesDocument. Задаюсь вопросом, стоит ли инициализировать второй объект, если NotesDocument, которые он должен содержать, еще не созданы. Если инициализировать его, будут некоторые удобства для меня, но с другой стороны память.

На сколько критично для памяти иметь большое количество ссылок на Nothing?
 

savl

Lotus Team
28.10.2011
2 591
309
BIT
138
Serduko
Как насчет "ленивой инициализации" при первом обращении к объекту?
 
S

Serduko

Serduko
Как насчет "ленивой инициализации" при первом обращении к объекту?
Как раз выбираю между ней и инициализацией при инициализации первого объекта. При таком раскладе логика перегружается, а я систему хочу сделать максимально гибкой и отказоустойчивой.
 

savl

Lotus Team
28.10.2011
2 591
309
BIT
138
Serduko
Да, можно посмотреть сколько памяти уходит, для утечек.
Вот ссылка на

<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Если вдруг она умрет:</div></div><div class="sp-body"><div class="sp-content">
Company: Dalsgaard Data

Contact: John Dalsgaard

URL:

Description
Most of you may have discovered memory leaks when your Notes
client is running a large job or just running an application on
the Domino server.

I have seen it in various places - and the sources to the problems
may be almost impossible to identify in your code.

I have come across the following undocumented (as far as I know)
features that can assist you in finding the the malicious code.



Code The basic trick is to know the name of a function call to some
internal registers that will return the information needed:

LotusScript Memory Allocated: Lsi_info(50)
LotusScript Memory Allocated from OS: Lsi_info(51)
LotusScript Blocks Used: Lsi_info(52)

Now if you want to use this code in a foreground agent it could
look like this:
Код:
Sub Initialize
Msgbox(" Total LotusScript Memory Allocated: " + (Lsi_info(50)))
Msgbox(" Total LotusScript Memory Allocated from OS: " +
(Lsi_info(51)))
Msgbox(" Total LotusScript Blocks Used: " + (Lsi_info(52)))
End Sub

To find out if there is a leak you will have to run the code
BEFORE and AFTER the code that you want to investigate.

If you want to use the code in a background agent you would have
to print to the LOG.NSF by using code that looks like this:

Код:
Sub Initialize
Print "Memory Allocated: " + Str$(Lsi_info(50)) + Chr$(10) + Chr
$(13)
Print "Total LotusScript Memory Allocated from OS: " + Str
$(Lsi_info(51)) + Chr$(10) + Chr$(13)
Print "Total LotusScript Blocks Used: " + Str$(Lsi_info(52)) + Chr
$(10) + Chr$(13)
End Sub

Be careful if you write the information to a document in a
database (say your own log facility) since this does also consume
some memory and thus the BEFORE and AFTER measurements are NOT
going to be equal.
 
S

Serduko

Serduko
Да, можно посмотреть сколько памяти уходит, для утечек.
Вот ссылка на

<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Если вдруг она умрет:</div></div><div class="sp-body"><div class="sp-content">
Спасибо, на одну пустую ссылку уходит примерно 5к (хотя в некоторых случаях вообще было почти 0, неясно). Заметил в Лотусе постоянную утечку памяти, с каждым новым запуском агента. Наверно, сделаю все таки ленивую инициализацию, кто знает, до каких объемов дойдет в будущем.
 

savl

Lotus Team
28.10.2011
2 591
309
BIT
138
Serduko
Чистый LS? java нет?
Там предупреждают что могут быть разные результаты.
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Заметил в Лотусе постоянную утечку памяти, с каждым новым запуском агента. Наверно, сделаю все таки ленивую инициализацию, кто знает, до каких объемов дойдет в будущем.
Проходили - фигня всё это, забудьте!

Из-за наличия у домино своего менеджера памяти ничего вы замереть не сможете - никогда :D

И Lsi_info я бы не увлекался вообще - это пострашнее RND в некоторых совсем казалось бы нелогичных конструкциях ложит сервер на раз

Если дествительно хотите заняться "оптимизацией" то постарайтесь обращать внимание не на память а на то, сколько раз вы базу дергаете - потому как бич любой базы это обращения к дисковой, вот тут, уменьшая количество обращений и строя однопроходную логику вы весьма серьезно ускоряете всё, и пофиг что подобный подход сожрёт в 10 раз больше памяти, зато какая скорость!!!
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 927
608
BIT
150
от агентов можно отходить в сторону
НО тогда только java

Добавлено: стр-ра
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 927
608
BIT
150
с 9-ой версии оно уже д.б. в составе (ну может не такое свежее :D )
 

Darkhan

Green Team
14.12.2012
99
2
BIT
0
Поосторожней с объектами типа
У меня есть объект, в нем второй объект, в этом объекте ссылки на несколько NotesDocument.
Если таких объектов будет туева хуча, (например если их складывать в лист) то память утечет у вас гораздо раньше.
Лотусовые объекты нежелательно хранить в масиивах(списках)
 
S

Serduko

а в чем нужен бубен?
Читал статью, давно (вот , вроде), по этой теме, лотус запрещает сессию в клиенте, нужны изменения в ini файле 8 клиента, для получения сессии. Сейчас есть способы получить текущую сессию на клиенте?

Поосторожней с объектами типа

Если таких объектов будет туева хуча, (например если их складывать в лист) то память утечет у вас гораздо раньше.
Лотусовые объекты нежелательно хранить в масиивах(списках)
Туева хуча - это сколько?
 

savl

Lotus Team
28.10.2011
2 591
309
BIT
138
Serduko
Вот может быть натолкнет на мысли.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 927
608
BIT
150
а причем тут OSGi, коей и поддерживает DOTS?
вот сравнение с агентом
мне кажется что DOTS и на клиенте поднимается (как и xPages )

Добавлено: т.е. речь идет не про бридж, а про написание на java полностью
 
S

Serduko

а причем тут OSGi, коей и поддерживает DOTS?
вот сравнение с агентом
мне кажется что DOTS и на клиенте поднимается (как и xPages )

Добавлено: т.е. речь идет не про бридж, а про написание на java полностью
Пока не готов отойти от толстого клиента, слишком много надо менять в уже устоявшейся системе.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!