Нужно записывать последние сообщения пользователей, если до этого было уже записано от него сообщение - перезаписать.
Мои варианты:
Какая реализация более рациональна? А может есть идея получше?
Условное количество пользователей - 10.000, количество сообщений в минуту > 100
Если уж нельзя с базой данных, и обязателен файл (может, просто в памяти держать?) - то я бы сделал файл с фиксированным размером записи, чтоб точно хватало для этого сообщения, типа
struct {
char user[N];
char msg[M];
}
При открытии файла создавал бы в памяти список "пользователь - позиция в файле" (тот же map
) и перезаписывал бы нужное место, которое бы очень быстро находил без поиска в самом файле. При добавлении пользователя - соответственно расширял бы файл.
Текстовый формат для такого - проще застрелиться - все время переписывать файл до конца...
Но все же подумайте - может, лучше держать в памяти, и сбрасывать в файл только время от времени? А то у вас будет сплошное пиление диска...
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пытаюсь написать создание по формату std::string с помощью vsnprintf, но что-то где-то пошло не так и программа падает во время вызова vsnprintf
Есть метод, который конвертирует OBJ файл (3д модель)indices содержит массив строк информации многоугольника, например 1//3, после операции split("/")...
В одном layout у меня много компонентов, вот скрин:
OnSwipeTouchListenerjava В данный код необходимо добавить двойное нажатие