Здравствуйте, CyberDemon, Вы писали:
CD>Да там общих то данных практически нет.
странное какое-то сжатие у вас. в нормальных алгоритмах сжатия видео общие данные таки есть, в результате чего, собственно говоря, и достигается приемлемая степень сжатия. жать кадры независимо один от другого — некошерно, если не сказать — кошмарно.
CD>Еще случайно обнаружил вот какой факт: CD>если у процесса изменить affinity mask таким образом, чтобы кол-во задействованных ядер совпадало с кол-вом рабочих потоков, то общая производительность резко возрастает. Походу исключаются некоторые промахи кеша.
неудивительно. вы ж закрепили за ядрами "свои" потоки. если их не закрепить, то планировщик оси перебрасывает поток на любое свободное ядро. допустим, поток A1 выполнялся на ядре C1, а поток A2 — на C2. и оба они успели скэшироваться (кэш первого уровня у всех ядер свой собственный). и тут — оба! планировщик кидает A1 на C2 или даже на C3. и привет! а если и процессоров больше одного, то это ласты полные и окончательные, т.к. у них еще и кэш второго уровня у всех свой собственный.
ЗЫ. affinity mask задает не кол-во используемых ядер, а именно закрепляет потоки за ядрами. так что сдается мне, что вы неправильно поняли назначение этой функции.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.