畅谈对Linux GCC 4.4的理解

运维 系统运维
只要处理器与Linux GCC 4.4编译器支持,就可以以并行方式同步执行,其结果反应了每指令周期不同操作达到的并行度。这部分的测试结果比较混乱。

这里我发表一下个人对Linux GCC 4.4理解,和大家讨论讨论。以社区支持的方式开发Linux发行版Fedora Core Linux,而Red Hat公司原来Red Hat Linux的开发团队也将继续参与这一发行版本的开发工作。与lat_ops相比,par_ops更像是一个进阶测试。通过对前者的修改与扩展,par_ops着力于体现处理器在指令层面的并行处理能力。

它使用了一些类似教科书上讲述并行计算时采用的示范代码,只要处理器与Linux GCC 4.4编译器支持,就可以以并行方式同步执行,其结果反应了每指令周期不同操作达到的并行度。这部分的测试结果比较混乱,除了一些并行度相同的操作外,很难在其他项目中寻找一个线形的变化规律。

纵向的比较反而更容易说明问题,o32模式和针对MIPS1指令集架构编译的代码并行度相对较低,n32模式下针对R4600处理器编译的代码则在很多操作中拥有最高的并行度。Linux GCC 4.4对龙芯2F处理器的优化能力似乎还有提升的空间,虽然n64模式下针对龙芯2F编译的代码执行并行度最高,但在o32和n32模式下,对浮点型变量的操作并行度与R4600还有明显差距。

总体来说,在指令层面,使用Linux GCC 4.4针对龙芯2F进行优化编译的效果还是比较明显的,这一点在64位环境下尤为突出。我们还使用-O2与-O3参数分别编译了针对龙芯2F、n32模式优化的代码,考察两者之间的性能差异。也许是测试程序的代码太过简单,lat_ops与par_ops靠进一步优化获得的性能提升与编译增加的时间绝不成正比。

实际应用测试

接下来进行的实际应用性能测试相信更让人感兴趣。Linux GCC 4.4根据现有测试条件,我们选取了一些比较常见的应用作为测试项目,并将它们归纳为桌面与网络两大类。桌面部分包括病毒检测、压缩打包和音频编码三种应用,考量指标是完成任务需要的时间;网络部分则通过在不同系统环境下构建完整的LAMP(Linux/Apache/MySQL/PHP)服务,使用思博伦通信的Avalanche 2500应用层性能测试仪考察不同测试用例的每秒最大新建事务数。

【编辑推荐】

  1. 简介Linux系统光驱软知识点
  2. Linux操作系统中的mmap简介
  3. 详细介绍Linux GCC系统静态链接
  4. 深入讲解剖析Linux设备驱动
  5. 轻松学会Linux权限管理
责任编辑:佚名 来源: pchome
相关推荐

2009-12-18 16:53:51

Linux initr

2009-05-31 19:22:20

云计算存储虚拟化

2015-12-09 13:06:15

Linux架构内核

2010-02-26 13:43:36

Linux gcc

2009-12-25 15:23:18

Linux shell

2021-12-30 10:06:33

GCC 12编译器链接器

2023-11-28 12:25:02

多线程安全

2022-06-30 09:10:33

NoSQLHBaseRedis

2014-08-07 14:19:46

Material DeGoogle

2009-10-22 17:48:32

linux gcc版本

2015-07-21 11:02:57

UbuntuLinux

2019-12-26 09:15:44

网络IOLinux

2009-12-01 13:35:39

Telnet服务

2016-01-12 14:54:58

UbuntuLinuxKernel 4.4

2009-10-22 17:15:51

linux gcc

2013-07-11 10:37:20

Java内存模型

2016-09-18 20:53:16

JavaScript闭包前端

2009-04-24 09:43:09

.NETASP.NET框架

2017-05-24 10:12:54

前端FlexboxCSS3

2022-07-06 08:30:36

vuereactvdom
点赞
收藏

51CTO技术栈公众号