Работа с большим кол-вом объектов
От: lonli Беларусь  
Дата: 17.05.07 07:23
Оценка:
Подскажите, если у кого-нибудь возникала такая задача. Как можно наиболее удобно организовать работу с большим кол-вом объектов? Имеется в виду, что алгоритм обрабатывает данные и оперирует 1-2-3 Гб памяти.
Если больной очень хочет жить, врачи бессильны. ©Ф.Раневская
Re: Работа с большим кол-вом объектов
От: Курилка Россия http://kirya.narod.ru/
Дата: 17.05.07 07:25
Оценка:
Здравствуйте, lonli, Вы писали:

L>Подскажите, если у кого-нибудь возникала такая задача. Как можно наиболее удобно организовать работу с большим кол-вом объектов? Имеется в виду, что алгоритм обрабатывает данные и оперирует 1-2-3 Гб памяти.


Всё зависит от алгоритмов и самих данных. Можно ли буферизовать? Может ДБ прикрутить?
Re: Работа с большим кол-вом объектов
От: Plague Россия 177230800
Дата: 17.05.07 08:01
Оценка: +1
Здравствуйте, lonli, Вы писали:

L>Подскажите, если у кого-нибудь возникала такая задача. Как можно наиболее удобно организовать работу с большим кол-вом объектов? Имеется в виду, что алгоритм обрабатывает данные и оперирует 1-2-3 Гб памяти.


Поставить 2-3-4 Гб памяти!?? =)
Re[2]: Работа с большим кол-вом объектов
От: Left2 Украина  
Дата: 17.05.07 09:21
Оценка:
L>>Подскажите, если у кого-нибудь возникала такая задача. Как можно наиболее удобно организовать работу с большим кол-вом объектов? Имеется в виду, что алгоритм обрабатывает данные и оперирует 1-2-3 Гб памяти.

P>Поставить 2-3-4 Гб памяти!?? =)


Без понимания того какая платформа — не поможет. К примеру, в 32-битных версиях Windows в рамках одного процесса выделить 3 гб памяти (даже не одним куском а несколькими) — это возня с настройками системы (а больше не получится никак, хоть 128 гигабайт физической памяти поставь), не говоря уже о том в WinCE адресное пространство вообще ограничено 32 метрами.
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re: Работа с большим кол-вом объектов
От: mrozov  
Дата: 17.05.07 09:31
Оценка: +4
Здравствуйте, lonli, Вы писали:

L>Подскажите, если у кого-нибудь возникала такая задача. Как можно наиболее удобно организовать работу с большим кол-вом объектов? Имеется в виду, что алгоритм обрабатывает данные и оперирует 1-2-3 Гб памяти.


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

Некоторые люди с такой задачей сталкивались. Результатом стала, например, сортировка слиянием (или семейство этих сортировок). Другие люди в результате такого столкновения создали реляционные базы данных. Ну и так далее...
Re: Работа с большим кол-вом объектов
От: aka50 Россия  
Дата: 17.05.07 09:42
Оценка:
Здравствуйте, lonli, Вы писали:

L>Подскажите, если у кого-нибудь возникала такая задача. Как можно наиболее удобно организовать работу с большим кол-вом объектов? Имеется в виду, что алгоритм обрабатывает данные и оперирует 1-2-3 Гб памяти.


Вот тут
Автор(ы): К. Дж. Дейт
Издательство: Вильямс
Цена: 1057р.

Новое издание фундаментального труда Криса Дейта представляет собой исчерпывающее введение в очень обширную в настоящее время теорию систем баз данных. С помощью этой книги читатель сможет приобрести фундаментальные знания в области технологии баз
немножко про это написано (всего лишь 1328 страниц) или покороче тут
Автор(ы): Гектор Гарсиа-Молина, Джеффри Ульман, Дженнифер Уидом
Издательство: Вильямс
Цена: 424р.

Книга известного специалиста в области компьютерных наук Дж.Ульмана и его именитых коллег по Станфордскому университету является уникальным учебным и справочным пособием, которое отличается беспрецедентными широтой и глубиной охвата предмета и
(1088 страниц)
Re[2]: Работа с большим кол-вом объектов
От: lonli Беларусь  
Дата: 17.05.07 10:40
Оценка:
Здравствуйте, mrozov, Вы писали:

M>Некоторые люди с такой задачей сталкивались. Результатом стала, например, сортировка слиянием (или семейство этих сортировок). Другие люди в результате такого столкновения создали реляционные базы данных. Ну и так далее...


Есть несколько алгоритмов, которые обрабатывают большие массивы данных (идет работа с миллионами объектов). Вот и хетлось уточнить, как это чаще всего происходит Сортировок нету, просто по опреджеленному алгоритму и на основании одних свойств объектов, выставляются свойства у других
Старость — это просто свинство. Я считаю, что это невежество бога, когда он позволяет доживать до старости. ©Ф.Раневская
Re[3]: Работа с большим кол-вом объектов
От: lonli Беларусь  
Дата: 17.05.07 10:41
Оценка:
Здравствуйте, Left2, Вы писали:


L>Без понимания того какая платформа — не поможет. К примеру, в 32-битных версиях Windows в рамках одного процесса выделить 3 гб памяти (даже не одним куском а несколькими) — это возня с настройками системы (а больше не получится никак, хоть 128 гигабайт физической памяти поставь), не говоря уже о том в WinCE адресное пространство вообще ограничено 32 метрами.


Ну как бы да, 2000-Xp, .net 2.0
Склероз нельзя вылечить, но о нем можно забыть. ©Ф.Раневская
Re[3]: Работа с большим кол-вом объектов
От: mrozov  
Дата: 17.05.07 13:51
Оценка:
Здравствуйте, lonli, Вы писали:

L>Здравствуйте, mrozov, Вы писали:


M>>Некоторые люди с такой задачей сталкивались. Результатом стала, например, сортировка слиянием (или семейство этих сортировок). Другие люди в результате такого столкновения создали реляционные базы данных. Ну и так далее...


L>Есть несколько алгоритмов, которые обрабатывают большие массивы данных (идет работа с миллионами объектов). Вот и хетлось уточнить, как это чаще всего происходит Сортировок нету, просто по опреджеленному алгоритму и на основании одних свойств объектов, выставляются свойства у других


Что за данные? Где хранятся, т.е. откуда берутся, куда вносятся изменения? Что за алгоритм, является ли он линейным или цикличным/рекурсивным? И т.п. Ничего не понятно. Тебе тут разные люди пишут, что такие проблемы чаще всего решаются с помощью баз даных. Опиши задачу нормально — может быть получишь пару грамотных советов. Иначе это все совершенно бесполезно.
Re[4]: Работа с большим кол-вом объектов
От: lonli Беларусь  
Дата: 17.05.07 14:14
Оценка:
Здравствуйте, mrozov, Вы писали:

M>Что за данные? Где хранятся, т.е. откуда берутся, куда вносятся изменения? Что за алгоритм, является ли он линейным или цикличным/рекурсивным? И т.п. Ничего не понятно. Тебе тут разные люди пишут, что такие проблемы чаще всего решаются с помощью баз даных. Опиши задачу нормально — может быть получишь пару грамотных советов. Иначе это все совершенно бесполезно.


Данные — аргументы и коллекции. Берутся — создаются в самом алгоритме (используются при расчетах). Алгоритм линейный.
Если больной очень хочет жить, врачи бессильны. ©Ф.Раневская
Re[5]: Работа с большим кол-вом объектов
От: mrozov  
Дата: 17.05.07 14:27
Оценка: 2 (1) +1
Здравствуйте, lonli, Вы писали:

L>Данные — аргументы и коллекции. Берутся — создаются в самом алгоритме (используются при расчетах). Алгоритм линейный.


Хорошо. Значит смотри, как нужно решить твою проблему — в рамках своего линейного алгоритма создаешь объекты по одному, делаешь нужные расчеты, меняешь нужные поля и тут же уничтожаешь. Расход памяти — минимальный, проблем никаких.

В третий (и последний) раз тебе говорю — твой вопрос слишком общий.

Из общих соображений могу сказать только, что если нужно работать с общим кол-ом данных, превышающим объем памяти, то способа только два — файлы и базы данных. Если доступ к данным относительно линейный, то файлы. Если нет — СУБД.
Re[2]: Работа с большим кол-вом объектов
От: fmiracle  
Дата: 17.05.07 14:39
Оценка: :)))
Здравствуйте, aka50, Вы писали:

A>Вот тут
Автор(ы): К. Дж. Дейт
Издательство: Вильямс
Цена: 1057р.

Новое издание фундаментального труда Криса Дейта представляет собой исчерпывающее введение в очень обширную в настоящее время теорию систем баз данных. С помощью этой книги читатель сможет приобрести фундаментальные знания в области технологии баз
немножко про это написано (всего лишь 1328 страниц) или покороче тут
Автор(ы): Гектор Гарсиа-Молина, Джеффри Ульман, Дженнифер Уидом
Издательство: Вильямс
Цена: 424р.

Книга известного специалиста в области компьютерных наук Дж.Ульмана и его именитых коллег по Станфордскому университету является уникальным учебным и справочным пособием, которое отличается беспрецедентными широтой и глубиной охвата предмета и
(1088 страниц)


При этом более длинный вариант — это "Введение...", а более краткий — "Полный курс..."
Re[3]: Работа с большим кол-вом объектов
От: Pavel Dvorkin Россия  
Дата: 28.05.07 12:02
Оценка: 9 (2)
Здравствуйте, Left2, Вы писали:

L>Без понимания того какая платформа — не поможет. К примеру, в 32-битных версиях Windows в рамках одного процесса выделить 3 гб памяти (даже не одним куском а несколькими) — это возня с настройками системы (а больше не получится никак, хоть 128 гигабайт физической памяти поставь)


Получится. Читай про AWE и PAE. Начни с MEM_PHYSICAL в VirtualAlloc и далее по ссылкам. Причем память будет несвопируемая.
With best regards
Pavel Dvorkin
Re: Работа с большим кол-вом объектов
От: FDSC Россия consp11.github.io блог
Дата: 28.05.07 19:28
Оценка:
Здравствуйте, lonli, Вы писали:

L>Подскажите, если у кого-нибудь возникала такая задача. Как можно наиболее удобно организовать работу с большим кол-вом объектов? Имеется в виду, что алгоритм обрабатывает данные и оперирует 1-2-3 Гб памяти.


Основной принцип работы: обрабатывать данные мелкими порциями, которые помещаются в память. Т.е. нужно преобразовать алгоритм работы так, что бы он долгое время крутил одну и ту же порцию данных, затем её выгружал, крутил другую порцию данных и т.д. Т.е. повысить локальность использования данных, минимизировать обращения к объектам, которые находятся вне ОЗУ

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

Если нет — то тут дело кирдык вообще может оказаться.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.