Мы разрабатываем приложения p2p с использованием C++, который передает голос другому партнеру с использованием UDP.Структуры данных для приложений реального времени
Мы являемся , фиксируя сигнал микрофона в буфере в потоке, который фиксирует голос в течение одной секунды в цикле while
. Для каждый второй записанный голос в буфере разбивает его на пакеты и отправляет другому партнеру. Теперь мне нужна правильная структура данных в пункте назначения, которая справляется с передачей в реальном времени. Та же структура данных, которую я собираюсь использовать для захвата экрана. Вот два подхода с использованием очереди, я думал о
Реализация очереди с использованием связанного списка, который поддерживает очередь
OneSecVoice
объектов илиImage
объекта в случае изображения.Реализация очереди с помощью статического массива
OneSecVoice
илиImage
объектов
OneSecVoice/Image
объекты будут содержать общее количество пакетов, пакетовбуфера для этого конкретного Image/OneSecVoice
.
Как его в режиме реального времени один поток будет непрерывно сканировать очереди и вынимают последний полныйImage/OneSecVoice
, суя Image/OneSecVoice
из очереди.
Так какой выбрать Реализация очереди с использованием связанного списка или Реализация очереди с использованием статического массива.
Я и мой друг борются за это, поэтому мы решили опубликовать здесь.
Преимущества кеша будут незначительными, если предположить, что его структура данных не менее велика, чем линия кэша. Поскольку каждый элемент будет выгружаться и обрабатываться один раз, а затем перезаписываться, кеш не поможет. –
@drew, посмотрите на эту ссылку http://en.wikipedia.org/wiki/Locality_of_reference. –
@xinus, вы должны быть очень осторожны с ненужными копиями. –