内核:
1)
盒子要使用64位内核以支持大内存,由于内核是静态链结所以编译内核使用-mabi=64 -msym32 -mno-abicalls -mplt
,这些选项强制64位内核使用32位符号,mno-abicalls减小代码尺寸,mplt在需要时使用非PIC代码等,这些措施可以提高性能。具体原因
参见[1][2][3]。
2) 映射内核,把内核从kseg0映射到kseg2靠近模块,不过会造成中断向量远离内核。
userland优化措施:
1)-mno-shared直接调用,不用读GOT和初始化t9。
2) 使用non-pic[4],性能提升大概5%,当仅调用库函数反而会降低性能。从gcc-4.4起已经支持(glibc-2.9
binutils-2.19及以上)。在64位时需要指定-msym32,而-mno-shared不用指出,从gcc-4.3起可以自动检
测,-mabicalls是默认,也不用指出。
[1]
[2]
[3]
[4]
|
文件: | new-tricks-mips-linux.pdf |
大小: | 385KB |
下载: | 下载 |
|
阅读(2364) | 评论(0) | 转发(0) |