flyonok

统计

留言簿(7)

ACE

book

boost

bsd

c study

c++

code download

codeblock

computer clound

Eclipse

embed system

erlang

ET++

gtk

ic card

java

KDE

libevent

linux

linux--MM

mysql

network education

one card

oracle

pcap relation

php

powerbuilder

python

QT

software config

software test

SQL server

UML

wireless

wxwidgets

陈宾

阅读排行榜

评论排行榜

关于这样 gcc -O3 和-O2 -Os 的说法对吗

在 x86 系列cpu采用 -O3 并不是一种好的选择。因为 x86 系列cpu缺乏足够寄存器,-O3 会导致代码变慢。

另外,-O3 包含了 -finline-functions,这会使目标代码不必要地膨胀,从而导致执行变慢。

所以在 x86 系列 cpu 采用 -O2 和 -Os 的效果比 -O3 好。

建议 CFLAGS 设置如下:
CFLAGS="-O2 -march=pentium4 -pipe"


/etc/make.conf 中 LDFLAGS 的设置对性能有较大的影响。

1、基础优化:

LDFLAGS="-Wl,-O1"

这种优化设置非常安全,不会有什么问题。

2、通过"—as-needed"加快软件载入速度:

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

在这种优化设置中,加入了--as-needed参数,这将避免软件连接多余的库,从而大大提升软件的载入速度,特别是 KDE 和 GNOME 这类大型软件的载入速度。
这是我喜爱的一种优化方案。
需要注意的是,由于有些软件包不支持 --as-needed 参数而导致 emerge 失败,在构造这类软件包时需要取消 --as-needed 参数。

posted on 2010-11-25 16:54 flyonok 阅读(1623) 评论(0)  编辑 收藏 引用 所属分类: c++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理