缓存

为了避免冗余的传输,Spice实现了客户端图像缓存。缓存能在任何一种图像数据上应用,包括像图,调色板和指针。每个来自驱动的图像都有一个唯一的id和缓存提示。不同的图像有不同的ID,但相同图像有相同的ID。缓存提示推荐服务器缓存这个图像。像图缓存被所有显示共享。每个连接都定义缓存并且在服务器和客户端之间缓存是同步的,例如,在任意时刻,服务器都知道哪些图像在客户端的缓存中。同时,服务器还决定哪些图像被加入缓存或被移除。客户端缓存的大小由客户端设置,并且被传给服务器通过显示初始化消息。服务器监听当前内存的容量,当它缺少空间时,它移除最近最少使用的缓存直到有足够的缓存空间可用 。服务器发送一个无效那些需要移除的图像的命令给客户端,然后客户端从缓存移除它们。