Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/122: Рейтинг темы: голосов - 122, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 19.10.2005
Сообщений: 603

Большой объем данных в память

05.08.2010, 14:16. Показов 22367. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, кто что думает по такому вопросу:

Для хранения настроечных данных мы используем лотусовые документы. Далее пишутся классы обертки на эти документы и методы нахождения этих документов по разным критериям через виды. Соотв. схема такая:
1. Нашли документ по критерию
2. Считали инфу
3. Что-то сделали

Документы редактируются редко, но хранят достаточно большой объем инфы.

Что если: программно один раз создать на каждый документ свой экземпляр класса? Соотв мы документы меняем на классы. При инициализации программа создает по одному экземпляру каждого класса и для поиска и чтения информации нам уже не требуются виды, документы и т.д.

Зачем это, возможно, нужно:
1. Настроечные документы фактически являются некими элементами дизайна. Если мы создадим их в видем библиотек, то они будут реально являться экземплярами дизайна. Нужно для контроля версионности, напрмер
2. LN на каждый объект создает C++ реализацию => меньше объектов LN, меньше C++ реализаций
3. В теории поиск по listу в разы быстрее, чем по виду

Недостатки:
1. Непонятно, как будет работать на больших объемах
2. Непонятно, как долго будет все инициализироваться
3. Непонятно сколько памяти будет расходоваться
4. В момент старта необходимо прогрузить все настроечные докуметны в память, хотя потребоваться нам могут лишь часть (думаю, эту проблему можно как-то решить)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.08.2010, 14:16
Ответы с готовыми решениями:

Access и большой объем данных
Есть программа которая пишет данные в несколько таблиц Access. При этом есть моменты, когда запись идет сразу в несколько таблиц...

ReportViewer Большой объем данных
Здравствуйте, использую на сайте в доменной сети C# элемент ReportViewer для отображения отчетов... Но есть один нехороший нюанс... Когда...

QAbstractTableModel и большой объем данных
Создал свою модель наследованную от QAbstractTableModel и отображаю ее в QTableView. Есть список структур, в структуре 11 полей которые...

15
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 615
05.08.2010, 14:50
а как планируеца обеспечивать время жизни объекта( которое предполагается равным времени работы приложения? ) На LS вроде как не получица. Статик java классы, xpages backing beans?
может все-таки на старых добрых профилях?
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
05.08.2010, 15:33
ToxaRat, помнится, предлагал хранить настройки в документе иконки БД. UNID у него для всех баз фиксированный и наперёд известный.
0
0 / 0 / 0
Регистрация: 19.10.2005
Сообщений: 603
05.08.2010, 15:46
turumbay
Мы для этого используем класс Cache:
объявлен как глобальная переменная в библиотеке, доступ через singleton, в него можно пульнуть объект по ключу и получить обратно. Если пульную объект в этот класс, то доступ к нему будет до момента смерти класса cache (если принудительно ничего не чистить).

Здесь такая заморочка:
Есть 200 документов с данными. Из этих 200 документов можно сгенерировать 200 классов (если не больше). При старте программы все 200 классов должны быть созданы и сохранены в кеше. Библиотека с данными классами будет иметь опупенный размер.
Вопросы по такой реализации прежние
0
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 615
05.08.2010, 16:12
Цитата Сообщение от fedotxxl
turumbay
Мы для этого используем класс Cache:
объявлен как глобальная переменная в библиотеке, доступ через singleton, в него можно пульнуть объект по ключу и получить обратно. Если пульную объект в этот класс, то доступ к нему будет до момента смерти класса cache (если принудительно ничего не чистить).
я туплю, или объект умрет почти моментально??? вьюху переключим и кирдык. документ закрыли - тоже кирдык.
как обеспечивается сохранение состояния этой глобальной переменной? Глобального Declarations для БД вроде еще не придумали?


Цитата Сообщение от fedotxxl
Здесь такая заморочка:
Есть 200 документов с данными. Из этих 200 документов можно сгенерировать 200 классов (если не больше). При старте программы все 200 классов должны быть созданы и сохранены в кеше. Библиотека с данными классами будет иметь опупенный размер.
насколько опупенный? Война и Мир, первый том, из библиотки Машкова весит меньше мегабайта. У вас больше данных?
В конце концов даже пяток метров памяти откушать под цели кэша - никто не заметит.
0
0 / 0 / 0
Регистрация: 19.10.2005
Сообщений: 603
05.08.2010, 16:24
turumbay
Вся логика применима для бэграудных агентов. Для UI врядли такое извращение нужно...



насколько опупенный?
На каждый документ нужно написать отдельный класс. На каждое поле документа нужно написать getter. У нас 500 документов, в каждом 100 полей.

500*(100*3) = 150000 строк кода, сгенерированного автоматически. Мне одному кажется, что это глупая идея?)
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
05.08.2010, 17:03
Цитата Сообщение от fedotxxl
Мы для этого используем класс Cache:
объявлен как глобальная переменная в библиотеке, доступ через singleton, в него можно пульнуть объект по ключу и получить обратно. Если пульную объект в этот класс, то доступ к нему будет до момента смерти класса cache (если принудительно ничего не чистить).
Если это класс ЛС, то идея плохая. Каждый открытый документ, представление, агент, использующие этот класс будут создавать свой экземпляр.
0
0 / 0 / 0
Регистрация: 19.10.2005
Сообщений: 603
05.08.2010, 17:17
nvy
Повторю еще раз - это для большого бэкграудного агента. Пул объектов, чтобы раз создал и используешь в разных формах, стандартным образом создать нельзя... да и речь не об этом
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
05.08.2010, 17:37
Кто мешает получить один раз документ и использовать его везде?

Добавлено: Это я к тому, нафига на каждый документ писать свой класс?
Ну и как объект будет жить тоже до сих пор не понятно. Агент весь день выполняется что ли?
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
05.08.2010, 17:50
fedotxxl
Настроечный документ — на то он и настроечный, чтобы хранить какие-то параметры настройки системы БЕЗ ПРОГРАММИРОВАНИЯ. Впрочем, есть идея от того же ToxaRat — настройки посредством ДХЛ непосредственно внедряются в исполняемый код. Т.е. есть, допустим, у Вас такой код:

LotusScript
1
2
3
4
5
If Param = 1 Then
Call SubOne()
Else
Call SubTwo()
End If
, где Param хранится в настроечном документе. При сохранении настроечного документа нужная библиотека выгружается в ДХЛ, в зависимости от значения параметра эти пять строчек кода заменяются на Call SubOne() или Call SubTwo(), затем библиотека загружается обратно. Подробности уточнять у автора идеи, сам я такой подход не пробовал.
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
05.08.2010, 17:54
всё равно не понял зачем всё это :sorry:
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
05.08.2010, 18:05
Цитата Сообщение от fedotxxl
Пул объектов, чтобы раз создал и используешь в разных формах, стандартным образом создать нельзя...
Ну, не совсем так — есть очереди сообщений. Но они тут вряд ли сгодятся при таких-то объемах.
0
0 / 0 / 0
Регистрация: 15.12.2006
Сообщений: 641
06.08.2010, 09:41
Я тоже ничего не понял

Особенно 500 документов - 500 классов меня добило. Может все таки, 500 экземпляров одного класса?
0
0 / 0 / 0
Регистрация: 04.08.2008
Сообщений: 408
08.08.2010, 10:31
Цитата Сообщение от K-Fire
Может все таки, 500 экземпляров одного класса?
объектов класса, может?
0
0 / 0 / 0
Регистрация: 15.12.2006
Сообщений: 641
08.08.2010, 16:57
Цитата Сообщение от xalet
объектов класса, может?
это одно и тоже.
0
1 / 1 / 0
Регистрация: 01.10.2006
Сообщений: 615
10.08.2010, 22:46
Цитата Сообщение от fedotxxl
nvy
Повторю еще раз - это для большого бэкграудного агента. Пул объектов, чтобы раз создал и используешь в разных формах, стандартным образом создать нельзя... да и речь не об этом
не понятно, о чем же все-таки речь - бекграундный агент.. а потом формы какие-то ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.08.2010, 22:46
Помогаю со студенческими работами здесь

Сохранить большой объем данных в ACCESS + C#
Всем добрый день. Проблема следующего характера. Есть файл архивов процесса. Формат файла собственной разработки компании. Каждые...

Вывеси к консоль большой объем данных
Здравствуйте. Моя задача - вывести 100 000 простых чисел начиная с 1цы. Имеется рабочий алгоритм по их поиску,но после 2000 выводов...

Как фильтровать большой объем данных?
использую QSortFilterProxyModel я вначале загружаю файл, скажем 6 Мегобайт все это загружается, через секунду отображает в таблице ...

Запись в Postgresql большой объем данных
Здравствуйте. Пытаюсь записать в Postgresql большой объем данных. При малом объеме все записывается, при большом выдает ошибку: ...

Можно ли в маткаде обрабатывать большой объем данных?
Можно обработать матрицу из 13 столбцов и около 30 строк?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru