Notesstream

Тема в разделе "Lotus - Программирование", создана пользователем Jansar, 27 янв 2011.

  1. Jansar

    Jansar Гость

    Добрый день!
    какую память используется NotesStream? только оперативную или + еще виртуальную(файл подкачки) ?
     
  2. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    Jansar
    странный вопрос
    я стриамом файлы создаю, поэтому он у меня прямо в файл пишет, какую память я использую? ;)
     
  3. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    вы путаете АПИ приложения и уровень ОС
    никто не укажет - когда ОС задумает юзать подкачку
    под стримы - выделяется буфер в памяти, по-мере исчерпания буфера - часть сбрасывается в файл
    если стрим без привязки к файлу (в LS)... - я не знаю как его реализовывали (может чисто в памяти, а может со врЕменными файлами)
     
  4. Darker

    Darker Гость

    хотелось бы выяснить, что при данном случае используется
     
  5. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    а если я запретил использовать файл подкачки то что будет? :D
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    в лучшем случае - сообщение о нехватке памяти, если запрошено больше, чем доступно физической...
     
  7. Jansar

    Jansar Гость

    если в стрим не файлы ложить а строки, будет ли использоваться файл подкачки когда будет заполнен буфер памяти?
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    какой - для стрима свой буфер, и отношения к виртуальной памяти ОС он имеет слабое
     
  9. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    рассмотрим две ситуации:
    1 - платформа юзает файловый вывод и не буферизирует
    2 - платформа организует свой буфер, а как буферизирует ОС - пох
    1-ый вариант - физ. память заканчивает, одно из первых что сделает ОС - покоцает файловые буфера (хотя - ОС бывают разные :gigi: )
    2 - ой вариант более вероятен приложение жрет буфер до заполнения, а ёйный буфер - в памяти приложения
    память приложения, условно - приоритетна для ОС, и ежели приложению не хватает физ. памяти - начнется своп
    НО буфера для стримов врядли очень большие, вопрос остаётся к стримам без явного файла
    в любом случае - решение об использовании файла подкачки - зона ответственности ОС (никак не домины)
     
  10. Jansar

    Jansar Гость

    в общем задача такая у нас:
    вычислить чем конкретно ограничен лимит у String и у NotesStream и чему он равее для определенного компа(допустим с ОЗУ 2гб). notes help говорит Limited by available memory.
    сделали агента, в цикле запихиваем в NotesStream (не используя файл) строки пока не выйдет ошибки string out of space, получаем определенный размер (в мб) NotesStream на этом компе на котором ошибка не выходит. Не можем понять от чего зависит этот размер, откуда и сколько выделяется для стрима памяти, что происходит при переполнении, увеличивает откуда-то еще втягивает что-то?, и в конечном итоге когда ресурсы закончились выкидывает string out of space.
     
  11. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    если вы об очень больших объемах...
    надо помнить, что память доступная приложению, на хэ86, 32бит, в упрощённом случае - 2Гб
    вычитайте из этого объёма внутренние нужды LDN
    разумеется, каков бы не был своп - это остаётся "потолком"
     
  12. Jansar

    Jansar Гость

    я запускаю агента на своем компе, заранее замеряю параметры памяти
    в диспетчере задач такие параметры, данные меняются но приблизительно такие:
    Физ память
    всего 2 092 228 КБ
    доступно 1 406 960 КБ
    системный кэш 426 450 КБ

    выделено памяти
    Всего 949 312 КБ
    предел 4 032 564 КБ
    пик 1 868 612 КБ

    ОЗУ = 2ГБ
    файл подкачки = 2ГБ

    собираю в строку текст, размер (функция lenb) строки = 300мб, смотрю в диспетчере, показывает
    Физ память
    всего 2 092 228 КБ
    доступно 1 097 960 КБ
    системный кэш 426 450 КБ

    выделено памяти
    Всего 1 258 312 КБ
    предел 4 032 564 КБ
    пик 1 868 612 КБ

    жирным отметил то что изменилось, от сюда вывод что 300мб которые держу в переменной выделил из физической памяти 300мб, еще остается приблизительно 1гб
    Теперь, запускаю агента на 500мб выходит ошибка string out of space. Вот тут вопрос возникает: почему? есть же еще 1гб, почему он их не взял.
    может системный кэш какую-то роль сыграл здесь, даже если брать минус системный кэш, то все равно остается еще 500мб, должно быть ограничение для переменной в 1,3ГБ либо (с минусом системного кэша) 900мб. приблизительно так.
    может я не правильно понимаю данные которые показывает диспетчер задач!? :)
     
  13. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    диспетчер - не лучший инструмент, смотрите утили Руссиновича http://technet.microsoft.com/ru-ru/sysinternals/default
    при том - вы не видите - сколько реально занимают нотуса (вместе с заюзанными длл системы, ведь они работают в контексте приложения)
    не знаете, также, накладных расходов на объект
     
  14. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.021
    Симпатии:
    8
    Вот коллега правильно говорит:
    2 Gb - это и есть "available memory" для 32-битной версии. Под какие свои задачи и какими блоками Лотус эту память выделяет внутри себя - одному Шиве известно :) Скорее всего, существует некий внутренний буфер ограниченного размера. Вышли за его пределы - получИте "Out of space".
     
Загрузка...
Похожие Темы - Notesstream
  1. NickProstoNick
    Ответов:
    19
    Просмотров:
    4.281

Поделиться этой страницей