哈哈,楼主要这么纠结这个问题,我特地去百度了下,结果发现这问题本身就不成立啊!为啥,听我说:
内存和显存压根干的活就不一样。内存嘛,就是CPU用来缓存硬盘数据的,这个大家都知道。但显存不同,它不光要存原始图像数据,还得存GPU处理完的数据,之后RAMDAC(就是数模转换器)从显存里读数据,把数字信号转成模拟信号,最后屏幕才能显示出来。
再说说楼主的问题:
1. 显存的数据不一定都从内存复制来的啊!你既然学编程,肯定知道指针吧?很多时候,内存里可能只存了个指向硬盘地址的指针。然后CPU把这个地址告诉GPU,GPU自己根据地址把数据调到显存里。所以内存存的可能就只是一个地址而已。
2. 如果内存不够用了,就会把那些已经调到显存的显示数据对应的内存空间释放掉。就这么简单!
希望楼主别钻牛角尖啦,明白不?
内存和显存压根干的活就不一样。内存嘛,就是CPU用来缓存硬盘数据的,这个大家都知道。但显存不同,它不光要存原始图像数据,还得存GPU处理完的数据,之后RAMDAC(就是数模转换器)从显存里读数据,把数字信号转成模拟信号,最后屏幕才能显示出来。
再说说楼主的问题:
1. 显存的数据不一定都从内存复制来的啊!你既然学编程,肯定知道指针吧?很多时候,内存里可能只存了个指向硬盘地址的指针。然后CPU把这个地址告诉GPU,GPU自己根据地址把数据调到显存里。所以内存存的可能就只是一个地址而已。
2. 如果内存不够用了,就会把那些已经调到显存的显示数据对应的内存空间释放掉。就这么简单!
希望楼主别钻牛角尖啦,明白不?