powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ограничить объем данных в памяти.
15 сообщений из 15, страница 1 из 1
Ограничить объем данных в памяти.
    #39163105
Serge163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть очередь
Код: c#
1.
private ConcurrentQueue<Goods> myQueue = new ConcurrentQueue<Goods>();


Есть класс товара
Код: c#
1.
2.
3.
4.
5.
public class Goods
    {
        public String Name { set; get; }
        public int Cena { set; get; }
    }


Очередь заполняется товаром. Необходимо установить ограничение на объем памяти, которую может занять очередь.

Например, установили лимит 1 Мбайт, заполняем очередь, получаем сообщение о превышении, принимаем решение, что делать далее.

Есть вариант рассчитать размер товара и т.д. и считать, сколько товара допустимо поместить в очередь, но хотелось бы найти решение по описанному выше примеру.

Прошу помощи, советов.
...
Рейтинг: 0 / 0
Ограничить объем данных в памяти.
    #39163108
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge163,
Используйте для начала не класс, а структуру для Goods.
...
Рейтинг: 0 / 0
Ограничить объем данных в памяти.
    #39163192
Serge163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Axeleron,
Спасибо, этот вариант уже рассматривается.
Пока важно не сэкономить объем, а ограничить.
...
Рейтинг: 0 / 0
Ограничить объем данных в памяти.
    #39163197
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge163Axeleron,
Спасибо, этот вариант уже рассматривается.
Пока важно не сэкономить объем, а ограничить.
Странная задача. А чем не устраивает ограничить количество элементов в коллекции/очереди?
...
Рейтинг: 0 / 0
Ограничить объем данных в памяти.
    #39163212
Serge163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Axeleron,
По условию известно количество доступной памяти.
Если посчитать руками объем товара, затем соответственно его количество, то при изменении структуры товара придется делать новый пересчет.
Этот вариант не отбрасываю, пока ищу способ ограничить. Важно не сколько товара, важно не превысить лимит.
...
Рейтинг: 0 / 0
Ограничить объем данных в памяти.
    #39163219
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Ограничить объем данных в памяти.
    #39163220
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge163По условию известно количество доступной памяти.
По какому условию? Кто и на каком основании такое условие придумал?
...
Рейтинг: 0 / 0
Ограничить объем данных в памяти.
    #39163234
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в string влезет 2Гб , т.е. достаточно 1-го элемента в вашей очереди
...
Рейтинг: 0 / 0
Ограничить объем данных в памяти.
    #39163241
Serge163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
buser,
Спасибо, почитаю.

Axeleron,
Извините, но не хотелось бы отклоняться от главного. Тут либо найти решение, либо дать обоснованный вариант. Обоснованный вариант уже есть, просто я не уверен, что нет решения. К стати ваши доводы мне были бы тоже весьма интересны.

Konst_One,
Согласен string здесь совсем не уместен, давайте считать, что я заменил его на char.
...
Рейтинг: 0 / 0
Ограничить объем данных в памяти.
    #39163292
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge163,

В вашем варианте например найм может быть одним обьектом и иметь много реферций из обэктов очереди.
Таким образом придётся считать все обьекты очереди как графа обэктов. В принципе - можно.
Если задачу упростит, принять хто обьекты охереди не имеют общих элементов, проще ввести вирт. метод для инстанса очереди, который указывает кол-во памяти и хранить текущую сумму паралелно с охередью.
...
Рейтинг: 0 / 0
Ограничить объем данных в памяти.
    #39163295
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronSerge163,
Используйте для начала не класс, а структуру для Goods.
От чего это спасет?
У него есть
Код: c#
1.
public String Name { set; get; }
...
Рейтинг: 0 / 0
Ограничить объем данных в памяти.
    #39163314
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВAxeleronSerge163,
Используйте для начала не класс, а структуру для Goods.
От чего это спасет?
У него есть
Код: c#
1.
public String Name { set; get; }


Хочешь сказать, что String - не immutable class? Хотя согласен, нужно сравнение.
...
Рейтинг: 0 / 0
Ограничить объем данных в памяти.
    #39163333
Serge163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mikron,
Можно подробнее ваш вариант?
...
Рейтинг: 0 / 0
Ограничить объем данных в памяти.
    #39163353
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge163Например, установили лимит 1 Мбайт
Ну так оберни в свой класс, считай объем в очереди. при помещении this.size += object.size, при извлечении this.size -= object.size.
дальше принимай решения в зависимости от this.size
...
Рейтинг: 0 / 0
Ограничить объем данных в памяти.
    #39164308
Serge163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо. Вопрос закрыт. Буду предварительно определять размер товара, затем считать.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ограничить объем данных в памяти.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]