所谓的游戏引擎不支持多核是什么意思?
- ReiFukai以前经常看到说XX游戏不支持多核,前两年wow好像就是,现在不知道怎么样。
就windows os来说,一个process里运行了多个thread,操作系统会自动schedule这些thread任务到不同的cpu核上,难道说这些个不支持多核的引擎都是单线程在跑的? - Klyress2014嗯就是这个意思
- 暗铁多线程不难,为了提升效率把一个东西由单线程搞成多线程很难……
- endrollex单线程是最简单的,多线程看的头晕,什么锁啊互斥调度好麻烦
- ReiFukai一个线程要跑graphic , AI , physics, UI等等那么多东西?
- 太太请您自重
- 暗铁上面有人说了,它本身也是会开很多线程的,但是可能某个线程占了80%的运算量
- 我的帐号没有了比如辐射3?
- lh4122最常见的并行化是按任务分核,比如画面一个核,其他一个核。有点同步性误差也可以接受。
但如果是同一个任务分到多个核上水平不高的真能写出并行减速的效果来 - ReiFukais1巨巨真多啊
- quixdx11才开始支持多线程渲染, dx11时代以前的引擎的基本上都不支持多线程, 当然也不表示支持dx11就一定就启用了多线程特性
- 上条とま单线程程序和多线程程序就是完全两种东西。
- endrollexgraphic 大多是GPU,API怎么处理的不管,UI也是API,graphic、AI跟physic要同步
- 曾经很纯良反正多线程编程是很考验技术水平的东西
- foreversmiles单线程单核 1个线程对应一个核,基础概念
单线程多核 1个线程分摊给多个核然后再统筹结果,算法好的话效率最高,但是难度也最高
多线程单核 4个线程排队给一个核计算,效率低
多线程多核 4个线程分别对应4个核,单线程效率和单线程单核一样,但是可以同时计算多个线程,变相提高效率。
一个电脑,永远不可能只有一条线程,系统本身就有很多线程,所以通常意义上的多核运算一般都是指多线程多核,一个线程对应一个核
达成效率最高的单线程多核运算,是一个很难得命题,
举简单的例子来说,要计算(2X5+6)/(8-2X2)=? 假设计算前面括号里需要5秒,后面也需要5秒,最后得到相除结果需要3秒,
那么单核就需要13秒来得到结果
如果通过算法让一个核计算前面,另一个核计算后面,都计算出来后,最后通过数据交换再相除,那么最好的情况只需要8秒
但是数据交换这个过程就需要程序员大大的各种优化与调试,不然很可能最后花费的时间还要超过13秒
也就是说,除非这个单线程及其耗费资源,单核需要花很多很多的时间来计算,否则你设计成单线程多核,根本得不偿失。 - abcbuzhiming正在被多线程搞的蛋疼的人飘过,以前一直以为很多牛逼公司开发的游戏服务器程序都是多线程的,后来才发现原来他们也是单线程,把任务分配给单个进程,进程内部是完全的单线程,多线程提升效率这只是一个美好的梦想,反而是稍不小心一堆坑等着你。具体到客户端游戏来说,目前绝大部分所谓支持多核的游戏引擎,其基本结构也可以视为单线程的,只是他们把任务分开,一个核心(线程)管一块,真正意义上的对同个内存区域用多个线程同时读写来加快效率的引擎好像没见到过
- ReiFukai这种做法进程间也不是同样存在数据交互和同步的问题?
- 暗铁运算中间数据会比运算结果数据大上好几个数量级,交互结果数据的延时是可以接受的
- xjx最需要并行处理的部分已扔GPU,所以还好。
- abcbuzhiming进程之间交换数据的时候直接开个线程安全队列,一边往里面写,另外一边读,生产者消费者模型就行了,这种模型简单的多,而且效率很高,多线程加锁对性能的影响多在计算中间,计算结果的交互反而简单,所以现在都采用逻辑部分一个线程算到底,然后结果丢给其它进程,其他进程再一次性的算到底,在计算中间搞多线程是很蛋疼的
- ReiFukai这样的话是不是需要一个全局性的进程来统一处理各个逻辑进程所产生的数据?相当于只有一个消费者来读这个安全队列
- 春原汐graphic可以单独跑
你说的剩下那些都是cpu的事
Ai和physics分线程跑简直是开玩笑 - にまぴ不就是……用户级多线程吗……
- abcbuzhiming这倒未必,比如很多客户端游戏的消费者就是绘图的线程一个人,但是消费者和生产者数量也不能太多否则也影响性能
- lxs85搭车问,那比如现在的处理器有什么双核 四线程,四核八线程之类。那如果一个游戏只支持单核 的话,在这里也只能用一个线程了咯 ?
- lh4122至少可以独占一核省的后台程序来抢资源
- 关空空因为玩游戏的同时要放直播,听音乐,准备好课件等你的学生进来的时候可以秒换。。
曾经做过很粗浅的图像分析的多线程优化。。脑袋都肿了。。最后我觉得我的逻辑完美无缺,各种overhead都考虑的十分到位。。各种测试死活性能提高的不多。。然后教授说有个东西叫沼泽效应,死心吧。。我就再不玩这东西了