#6292 Score: 1
zyk
Participant
6 pts

我是使用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.