所以我在弄乱一些高度图图像,发现了其中一个:
http://upload.wikimedia.org/wikipedia/commons/1/15/Srtm_ramp2.world.21600x10800.jpg
当我在浏览器中右键单击“复制图像”(我使用的是chrome)时,此图像为21600x10800,它会降低计算机的速度,直到死机。之后,我必须重新启动。我想知道为什么会发生这种情况,我想它是图像的大小,尽管保存时只有大约6mb。
我也在使用Windows 8.1
所以我在弄乱一些高度图图像,发现了其中一个:
http://upload.wikimedia.org/wikipedia/commons/1/15/Srtm_ramp2.world.21600x10800.jpg
当我在浏览器中右键单击“复制图像”(我使用的是chrome)时,此图像为21600x10800,它会降低计算机的速度,直到死机。之后,我必须重新启动。我想知道为什么会发生这种情况,我想它是图像的大小,尽管保存时只有大约6mb。
我也在使用Windows 8.1
Answers:
“复制图像”是将原始图像数据而非图像文件本身复制到剪贴板。
原始图像数据将为21600 x 10800 x 3(24位图像)= 699,840,000字节数据。您的浏览器尝试在剪贴板上戳入大约700MB的数据。
JPEG使用有损算法压缩原始数据,并且可以获得很好的压缩效果。因此,压缩文件只有6MB。
它使您的计算机运行缓慢的原因是,它可能至少用浏览器用来显示图像的700MB图像数据来填充内存,另外700MB(连同剪贴板产生的所有开销)将其存储在计算机上。剪贴板,以及将图像转换为可以存储在剪贴板上的格式的处理能力并不低。
如果您的物理RAM少于4GB或更少,则这些映像数据副本可能会迫使您的计算机将内存分页到交换文件中,以尝试同时满足这两种内存需求。这将导致程序和磁盘访问缓慢,因为它们使用磁盘并尝试使用可能刚刚被调出的数据。
简而言之:除非有足够的存储空间和时间,否则不要将剪贴板用于大图像。
喜欢漂亮的图吗?当我在Chrome中加载该图像,然后将其复制到具有12GB RAM的计算机上的剪贴板时,会发生以下情况:
它从较低的点开始使用2.8GB的RAM,加载图像后将其最大填充为3.6GB(大约700MB),然后将其复制到剪贴板,在6.3GB的RAM处达到峰值,然后再向下放置。您希望看到一个程序具有4.5-ish的功能,以及一个较大图像的两个副本。
峰值时需要处理多达3.7GB的图像数据,这可能是初始图像,为剪贴板保留的数量以及两个转换缓冲区。这足以使任何具有少于8GB RAM的计算机屈服。
奇怪的是,在Firefox中这样做只是复制图像文件,而不是复制图像数据,而不会造成可怕的内存激增。