Есть принимаемые по сетке входящий поток видеоданных. Он передается после минимальной правки на видеоплеер.
В теории это можно сделать двумя способами — выдать на localhost или через память (плеер читает либо из памяти либо из сетки).
Какой способ более быстрый, хотя бы в теории? Скажем на Win7, C#.
Здравствуйте, Amouse, Вы писали:
A>Есть принимаемые по сетке входящий поток видеоданных. Он передается после минимальной правки на видеоплеер. A>В теории это можно сделать двумя способами — выдать на localhost или через память (плеер читает либо из памяти либо из сетки). A>Какой способ более быстрый, хотя бы в теории? Скажем на Win7, C#.
Что значит память? Stream? Поток будет быстрее, но я бы набросал тест и проверил.
A>В теории это можно сделать двумя способами — выдать на localhost или через память (плеер читает либо из памяти либо из сетки). A>Какой способ более быстрый, хотя бы в теории? Скажем на Win7, C#.
Если нутро плейера неизвестно — лучше делать на localhost, у любого нормального плейера есть доп буферизация для сглаживания неравномерностей траффика когда файл приходит из сети, которая не факт что будет включена если источником установлена память. Если вне зависимости от источника различий в буферизации нет, то на Win7 память будет быстрее. На Win8 и производных серверах можно включить SIO_LOOPBACK_FAST_PATH, тогда localhost догонит память, и тут уже будет совсем без разницы — что проще, то и можно использовать.
Здравствуйте, Amouse, Вы писали:
A> Есть принимаемые по сетке входящий поток видеоданных. Он передается после минимальной правки на видеоплеер. A> В теории это можно сделать двумя способами — выдать на localhost или через память (плеер читает либо из памяти либо из сетки). A> Какой способ более быстрый, хотя бы в теории? Скажем на Win7, C#.
Через память можно передать по-разному, с разным оверхедом. Localhost это тоже через память. Все зависит от реализации.
Здравствуйте, Amouse, Вы писали:
A>Есть принимаемые по сетке входящий поток видеоданных. Он передается после минимальной правки на видеоплеер. A>В теории это можно сделать двумя способами — выдать на localhost или через память (плеер читает либо из памяти либо из сетки). A>Какой способ более быстрый, хотя бы в теории? Скажем на Win7, C#.
Если под памятью понимается шаренный кусок, то, при наличии не совсем уж экстремально кривых рук память будет на много быстрее. localhost в любом случае прогоняется по части сетевого стека, ходит между User-space и kernel-space что очень сильно не бесплатно. В то же время, сделать кривую реализацию, которая будет падать и тормозить на шаренной памяти хоть и не очень просто, но можно. Поэтому, если нет критичных требований к производительности, localhost не так уж и плох. А шаренная память – это очередные велосипеды.