如何测试为RISC和CISC处理器编写的内存占用程序?
哪个会需要更多的内存,为什么?
答案 0 :(得分:0)
所以,我这样做的方法是通过实验。我将为两种类型的体系结构编译二进制文件,然后使用gcc工具查看内存占用量。对于以下示例,我将比较x86_64和RISCV体系结构。我要使用的第一种方法是使用大小工具,该工具可以分解精灵的各个部分并报告大小。
# riscv64-unknown-elf-size Test.elf
哪个会输出这样的内容
text data bss dec hex filename
XXXXXX XXX XXXXXXX XXXXXXX XXXXXX Test.elf
然后将其与x86版本进行比较:
# size Test.exe
哪个会输出这样的内容
text data bss dec hex filename
XXXXXX XXX XXXXXXX XXXXXXX XXXXXX Test.exe
另一种方法是将您的elf转换为一个直接的二进制文件,该二进制文件将一点一点地放入您的内存中(对于更复杂的内存体系结构可能并非如此,但是我们假设一个简单的情况是所有存储并从RAM执行)。用于此目的的工具是objcopy。
# riscv64-unknown-elf-objcopy -O binary Test.elf Test.elf.bin
# objcopy -O binary Test.exe Test.exe.bin
然后检查两个生成的bin文件的大小。