我想通过按 ctrl + alt + T 创建一个打开 Git bash 的快捷方式。然后,它启动 git bash。
我尝试使用 zlib 打包和压缩游戏客户端资源数据。如果我压缩数据,它会随着文件大小的减小而减少磁盘 I/O,但在解压缩时会增加 CPU 使用率。
问题1
如果用于渲染的资源被压缩,处理(渲染和解压缩)会使用 CPU,所以我认为它似乎很慢,对吗?
如果没有压缩,则磁盘 I/O 没有改变,并且不会出现额外的 CPU 使用率。如果您只读取文件的一部分,可以使用 CreateFileMapping()、MapViewOfFile() 函数减少磁盘 I/O。
问题2
在资源的情况下,例如未压缩的图像(例如tga,而不是png),当我们必须读取整个文件(例如图像文件)时,我们无法利用CreateFileMapping(),MapViewOfFile(),所以我认为压缩资源更好,你怎么看?
问题3
打包时对资源数据进行压缩是怎么想的?
写下面的代码给我奇怪的答案
#include <stdio.h>
int main (void)
{
char a=0x03 ,b=0x01 ,x;
printf("Enter two numbers : \n");
scanf("%c %c",&a,&b);
printf("0x%x 0x%x\n",a,b);
printf("0x%x || 0x%x = 0x%x \n0x%x ^ 0x%x = 0x%x\n0x%x << 0x%x = 0x%x\n0x%x >> 0x%x = 0x%x\n",a,b,a||b,a,b,a^b,a,b,a<<b,a,b,a>>b);
scanf("%i",x);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这给了我以下结果
Enter two numbers :
2 3
32 33
0x32 || 0x33 = 0x1
0x32 ^ 0x33 = 0x1
0x32 << 0x33 = 0x1900000
0x32 >> 0x33 = 0x0
Run Code Online (Sandbox Code Playgroud)
我不知道为什么它确实将错误的值带入a和b虽然我已经尝试使用int并且它运行良好?!