比方说多线程创建PSO会调用CreatePipelineStateFromStream,现在我想具体知道hr = Device->CreatePipelineState(Desc, IID_PPV_ARGS(&PSO));这个函数带来的系统内存以及显存的增长。通常会通过原子变量在函数前后插桩系统内存或者显存,然后通过差值获取。但是由于这个过程是多线程的,在执行CreatePipelineState的过程中,可能会有其他线程也在分配/释放内存,这就会干扰统计。请问除了开onethread,有什么其他办法可以进行统计吗?
[Attachment Removed]
但是我开onethread还是会出现CreatePipelineState前后内存差出现负数,也就是内存变少。不知道该怎么解释。可能是电脑的其他进程影响导致的?
[Attachment Removed]
Liu.Wei
(Liu.Wei)
4
Hi,
请问你是怎么统计的,直接从Physical Memory的差值来统计吗?(PC平台?)
我不太确定是否有有效的统计方式,因为无论是驱动层的内存分配,还是现存的占用,好像都没有API直接获得这部分内存的单独占用,也无法肯定这个函数调用后,是否还有些临时内存的申请释放。
[Attachment Removed]
是的。使用Physical Memory差值统计。看来只能做一些实验了
[Attachment Removed]