Home › Forums › GAMES在线课程(现代计算机图形学入门)讨论区 › 作业七的性能瓶颈是随机数生成 › Reply To: 作业七的性能瓶颈是随机数生成
我是使用libuv的线程池+work队列来实现多线程的,比如渲染一张128*128图,我就创建128*128个任务加到任务队列中,然后开启libuv的runloop通过线程池去执行。(我用的是4线程的CPU,线程池中线程数设置为4)
昨晚将随机数生成做成局部static的thread_local变量,这样会针对线程池中的每个线程创建一个随机数生成器,而不是每次调用随机数去构建生成器。
结论:这样做确实大幅提高了渲染效率,4线程的普通PC,渲染一张1024*1024、spp为2048的图,只需要一个多小时!
请问你是怎么测出性能热点在构建随机数生成器的?C++有什么厉害的性能分析工具吗?
这块我不是很熟悉,没做过类似的分析,谢谢!
This post has received 1 vote up.