LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: 哈蜜瓜

如何让你的FreeBSD系统达到最优化?

[复制链接]
发表于 2004-3-20 22:54:08 | 显示全部楼层
建议慎用。我用AMPXP在buildworld时使用 -03... 会有Error,好像只有-o 和 -02 才好。(从邮件列表上看的)
发表于 2004-5-4 00:53:55 | 显示全部楼层
最初由 Gavin_tju 发表
4.x带的是gcc2.95,用这个优化参数没作用吧,呵呵
5.x的就是gcc3.x了,不过我还没试过,4.x的系统加了参数也只是按照pentiumpro来优化,而且有些包编译通不过...


NO_CPU_CFLAGS=true
NO_CPU_COPTFLAGS=true
这两个可以让它不自动加-march=pentiumpro参数
发表于 2004-5-4 01:27:03 | 显示全部楼层
这是gentoo一个典型的/etc/make.conf的有关部分,或许有点参考作用。

# Host Setting
# ============
#
# If you are using a Pentium Pro or greater processor, leave this line as-is;
# otherwise, change to i586, i486 or i386 as appropriate. All modern systems
# (even Athlons) should use "i686-pc-linux-gnu"
#
CHOST="i686-pc-linux-gnu"

# Host and optimization settings
# ==============================
#
# For optimal performance, enable a CFLAGS setting appropriate for your CPU
#
# -mcpu=<cpu-type> means optimize code for the particular type of CPU without
# breaking compatibility with other CPUs.
#
# -march=<cpu-type> means to take full advantage of the ABI and instructions
# for the particular CPU; this will break compatibility with older CPUs (for
# example, -march=athlon-xp code will not run on a regular Athlon, and
# -march=i686 code will not run on a Pentium Classic.
#
# CPU types supported in gcc-3.2 and higher: athlon-xp, athlon-mp, athlon-4,
# athlon-tbird, athlon, k6, k6-2, k6-3, i386, i486, i586 (Pentium), i686
# (PentiumPro), pentium, pentium-mmx, pentiumpro, pentium2 (Celeron), pentium3,
# and pentium4. Note that Gentoo Linux 1.4 and higher include at least gcc-3.2.
#
# CPU types supported in gcc-2.95*: k6, i386, i486, i586 (Pentium), i686
# (Pentium Pro), pentium, pentiumpro Gentoo Linux 1.2 and below use gcc-2.95*
#
# Decent examples:
#
#CFLAGS="-mcpu=athlon-xp -O3 -pipe"
CFLAGS="-O3 -march=pentium3 -fprefetch-loop-arrays -funroll-loops -pipe"

# If you set a CFLAGS above, then this line will set your default C++ flags to
# the same settings. If you don't set CFLAGS above, then comment this line out.
CXXFLAGS="${CFLAGS}"
发表于 2004-6-1 06:21:15 | 显示全部楼层
学习
发表于 2004-6-1 20:15:02 | 显示全部楼层
用O3很有些程序不能正常运行,实际上O2已经有不少问题了,没办法,gcc就是这样的,Bug一堆。如果用AthlonXP,可以试试:
-mfpmath=sse -mmmx -msse -m3dnow -maccumulate-outgoing-args
-minline-all-stringops

这个不会出问题,另外用:
CXXFLAGS+= -fmemoize-lookups -fsave-memoized
无法正常编译XMame,临时去掉好了。
发表于 2004-8-2 23:14:17 | 显示全部楼层
另外开 -O3 级别的优化编译大型程序可能时间太长, -O2 比 -O3 不差多少,甚至个别时候更好, 时间却少不少。
发表于 2004-8-4 08:16:52 | 显示全部楼层
-fomit-frame-pointer 不少朋友都说不稳定, 昨天make world的时候发现的确不稳定, 特别是和 -pg 参数冲突。
发表于 2004-8-4 14:16:47 | 显示全部楼层
等gcc-3.4进了试试?这个版本据说是第一个不会因为优化产生错误的版本
发表于 2005-8-31 16:32:38 | 显示全部楼层
和gentoo一个样哈
回复 支持 反对

使用道具 举报

发表于 2005-9-1 23:26:18 | 显示全部楼层

CFLAGS= -march=i386 -O3 -pipe -fomit-frame-pointer
CXXFLAGS+= -march=i386 -O3 -pipe -fomit-frame-pointer

cxxflags这个写法似乎有误,如果是“+=”,表示由cflags追加的参数;“=”则表示重新定义所有参数。
一般来说cxxflags和cflags一样就可以了,就是说cxxflags可以不写出来。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表