-
Знающие люди подскажите, могут ли браузеры использовать несколько потоков для более быстрой перерисовки окна. Нужно знать для защиты курсовой. Например окно "побито" на области, каждая область обновляется в отдельном потоке. Заранее спасибо.
-
>>могут ли браузеры использовать несколько потоков для более быстрой перерисовки окна.
Для перерисовки или вывода содержимого в композитный менеджер?
-
> валя © (20.11.17 23:45)
если нужно рисовать быстро и без нагрузки на CPU - нужно использовать видеокарту, например, через direct2d.
-
> Нужно знать для защиты курсовой
При защите курсовой в данном случае стоит знать, что многопоточность только в очень редких случаях именно ускоряет работу программы.
-
Германн © (21.11.17 02:11) [3]
Многопоточность всегда ускоряет. На моем 10-и ядернике в 6-7 раз ускорение.
Главное правильно распараллелить.
-
> dmk © (21.11.17 02:17) [4]
>
> Германн © (21.11.17 02:11) [3]
> Многопоточность всегда ускоряет.
Да. Не забывай только всегда упоминать
> На моем 10-и ядернике
А это ну очень редкий случай. :)
-
>А это ну очень редкий случай. :)
Ну 4-х ядерник явление повсеместное. Ускорение 3-3,5 раза.
Не спорьте. Я на этом собаку съел :)
-
> Многопоточность всегда ускоряет.
насколько ускорится передача по com порту если ее сделать в 10 потоков?
-
>насколько ускорится передача по com порту если ее сделать в 10 потоков?
При чем тут один com-порт и распараллеливание вычислений? Я же из процессора в память параллелю. В ком-порт многозадачность не нужна насколько я понимаю.
-
> dmk © (21.11.17 15:00) [6]
> >А это ну очень редкий случай. :)
> Ну 4-х ядерник явление повсеместное. Ускорение 3-3,5 раза.
>
> Не спорьте. Я на этом собаку съел :)
главное хвостом не подавись )
дурной тон работать с графикой через CPU там где нужна производительность.
-
>дурной тон работать с графикой через CPU там где нужна производительность.
300 тысяч полигонов - 2560×1600×30 fps на 10 ядрах. Было интересно насколько потянет CPU. УРовень RivaTNT2 где-то или Voodoo 3.
И дурного ничего нет. Просто свой движок делал софтверный.
Понятно, что на OpenGL многократно быстрее.
-
> При чем тут один com-порт и распараллеливание вычислений?
при чем тут вычисления на перерисовке окна? видеокарты сейчас тоже многопроцессорные?... ну может быть, не в курсе их прогресса, тогда зачем канвас при отрисовке окон в системе локируется (закрывается критической секцией, т.е. все потоки в очереди рисовать будут)?
-
>при чем тут вычисления на перерисовке окна?
Вы странный какой-то. Весь пакет Adobe многопоточность использует.
Иллюстратор, фотошоп, премьер, афтер эффектс и т.д. и т.п.
И да, видеокарты по сути многоядерные. Вернее многоблочные.
Тысячи растеризационных блоков рисуют параллельно + шейдерные процессоры как пост эффект. Суть та же.
-
>тогда зачем канвас при отрисовке окон в системе локируется
>(закрывается критической секцией, т.е. все потоки в очереди рисовать будут)?
Synchronize - это и есть блокирование критической секцией.
-
> И дурного ничего нет. Просто свой движок делал софтверный.
свой для своего компа для себя - да, ничего дурного.
какой-то жутко специализированный софт, под который не жалко собрать отдельный комп - да, тож ничего дурного.
но если б так делались все программы, то целероны не было б смысла делать.
-
> Весь пакет Adobe многопоточность использует.
ему есть, что считать. и это программа, а не "перерисовка окна", перерисовку она тоже вряд ли "размногопоточивает".
-
-
>>Вы странный какой-то. Весь пакет Adobe многопоточность использует.
Тесты показывают, что максимум 2 ядра + 2 hyperthreading потока. Даже полноценные 4 ядра не использует по полной. Скорее всего затраты на синхронизацию данных не оправдывают себя.
Affinity photo например работает на всех 8 ядрах у меня. Но это чисто Маковский софт, тут все не как в win/linux.
>>ему есть, что считать.
Обработка 16 бит на канал - то еще развлечение с кэшем процессора.
-
> Тесты показывают, что максимум 2 ядра + 2 hyperthreading
> потока. Даже полноценные 4 ядра не использует по полной
Если про продукцию Adobe, то у меня используют. И не в тестах, а по делу.
-
>при чем тут вычисления на перерисовке окна?
>перерисовку она тоже вряд ли "размногопоточивает".
Перерисовка окна делается в Synchronize(BitBlt) или аналогичной.
В одном потоке на моем проце буфер через BitBlt перерисовывается около 950-1000 fps. Если делать отрисовку в буфере сцены скажем из 50 тысяч полигонов одним потоком, то скорость падает до 50-60 fps. Если распараллелить отрисовку в буфер на все ядра, то скорость возрастает до 400 fps. А вы говорите нет ускорения. Вывод не ускоряется. Ускоряется распараллеленный рендер в буфер, а соответственно общая скорость рендер/вывод. Профит есть.