Categories
Linux/BSD Software

The quest for performance

Yo,
Several distros such as Ubuntu, openSUSE, or Fedora Core are pretty n00b friendly and desktop-oriented. A lot of optimization must’ve gone through into these distros. Binary packages and nifty package managers are features. Where it hurts or matters most is when you want customizability in the “Gentoo sense” 🙂
Take for example a typical make.conf
you have flags such as USE, CFLAGS, and so on. One of these (which gets automatically highlighted red by vim is LDFLAGS ). MS Windows XP’s GUI et al feels a lot snappier compared to Gnome on my box. After I set the following LDFLAGS and re-emerged world, I’ve started to notice that my Gnome doesn’t suck as badly as it used to. I’ve posted this on the newsgroups (intranet) and people have asked me for benchmarks. But, although I didn’t do any (forgot actually :P) I ‘feel’ a sense of life flowing back into my system.
A lot of googling told me that the Ubuntu developers have also done something similar with their packages. There is an article on LWN that explains LDFLAGS a little. There are a couple of threads on Gentoo Forums.

LDFLAGS="-Wl,-O1 -Wl,--enable-new-dtags -Wl,--sort-common -s -Wl,--as-needed -Wl,-z,now"

Make sure you go through the man page of ld for self-satisfaction.

Categories
Linux/BSD Software

Fonts, good ones


Not sure if people who know me have noticed it or not but I seem to be ‘obsessed’ with fonts. The first thing I do whenever I install a linux distro is to go and fetch those apple fonts and set them as the default ones with appropriate settings (autohinting, smoothing, etc.)
The blog post here has the link to the apple fonts and make sure you go through Gentoo-Wiki‘s article.
Here’s my gnome-font-properties‘s screenshot. Notice that I’ve turned off hinting (Hinting: “None” radio button). Try this even if you’re not going to install apple fonts. It give a whole new look to the fonts you might already be using: BitStream Vera or Dejavu.
Happy Gnome-ing 🙂

UPDATE on 25th of Feb, 2007:

Finally, this is how my /etc/fonts/local.conf stands for my Samsung SyncMaster 740N LCD.

Categories
Linux/BSD Software

Typical Memory Usage on my Gentoo-Gnome Desktop

Yo all,
It’s been a long time and I’d like to start of by introducing a python script that stdouts a well-formatted table of memory usage per process. Having decided to run the script as ‘root’ on my 512MB box this is what I had in store:

clueless ~ # python ~nareshov/Desktop/Shared/Gentoo/ps_mem.py
Private + Shared = RAM used Program

0.0 KiB + 108.0 KiB = 108.0 KiB unlinkd
32.0 KiB + 184.0 KiB = 216.0 KiB gpm
0.0 KiB + 220.0 KiB = 220.0 KiB syslog-ng
0.0 KiB + 224.0 KiB = 224.0 KiB udevd
24.0 KiB + 260.0 KiB = 284.0 KiB hald-addon-stor
0.0 KiB + 308.0 KiB = 308.0 KiB dbus-launch
0.0 KiB + 312.0 KiB = 312.0 KiB sshd
0.0 KiB + 312.0 KiB = 312.0 KiB agetty
52.0 KiB + 292.0 KiB = 344.0 KiB init
40.0 KiB + 308.0 KiB = 348.0 KiB hald-addon-keyb
56.0 KiB + 292.0 KiB = 348.0 KiB xfs
56.0 KiB + 308.0 KiB = 364.0 KiB ssh-agent
60.0 KiB + 308.0 KiB = 368.0 KiB hald-addon-acpi
0.0 KiB + 388.0 KiB = 388.0 KiB avahi-dnsconfd
0.0 KiB + 424.0 KiB = 424.0 KiB gnome-keyring-d
108.0 KiB + 320.0 KiB = 428.0 KiB gnome-pty-helpe
0.0 KiB + 440.0 KiB = 440.0 KiB hald-runner
48.0 KiB + 428.0 KiB = 476.0 KiB mapping-daemon
344.0 KiB + 276.0 KiB = 620.0 KiB wineserver
4.0 KiB + 628.0 KiB = 632.0 KiB su
60.0 KiB + 580.0 KiB = 640.0 KiB gdm
240.0 KiB + 408.0 KiB = 648.0 KiB ntpd
96.0 KiB + 588.0 KiB = 684.0 KiB gam_server
0.0 KiB + 780.0 KiB = 780.0 KiB ssh
352.0 KiB + 484.0 KiB = 836.0 KiB dbus-daemon
692.0 KiB + 340.0 KiB = 1.0 MiB nmbd
0.0 KiB + 1.1 MiB = 1.1 MiB mozilla-launche
416.0 KiB + 808.0 KiB = 1.2 MiB avahi-daemon
0.0 KiB + 1.2 MiB = 1.2 MiB bonobo-activati
800.0 KiB + 588.0 KiB = 1.4 MiB smbd
248.0 KiB + 1.2 MiB = 1.4 MiB explorer.exe
556.0 KiB + 900.0 KiB = 1.4 MiB hald
16.0 KiB + 1.5 MiB = 1.5 MiB gnome-vfs-daemo
1.0 MiB + 1.4 MiB = 2.4 MiB gconfd-2
2.0 MiB + 644.0 KiB = 2.6 MiB squid
468.0 KiB + 2.4 MiB = 2.9 MiB gnome-screensav
624.0 KiB + 2.6 MiB = 3.2 MiB gnome-settings-
1.9 MiB + 1.3 MiB = 3.3 MiB bash
196.0 KiB + 3.1 MiB = 3.3 MiB gnome-session
1.0 MiB + 2.6 MiB = 3.6 MiB gnome-power-man
980.0 KiB + 3.4 MiB = 4.4 MiB notification-ar
1.1 MiB + 3.3 MiB = 4.4 MiB clock-applet
1.1 MiB + 3.6 MiB = 4.7 MiB mixer_applet2
1.6 MiB + 4.0 MiB = 5.5 MiB notification-da
2.4 MiB + 4.4 MiB = 6.9 MiB metacity
2.5 MiB + 5.3 MiB = 7.8 MiB wnck-applet
4.7 MiB + 4.7 MiB = 9.5 MiB gnome-panel
4.9 MiB + 5.5 MiB = 10.4 MiB nautilus
10.3 MiB + 7.5 MiB = 17.8 MiB gnome-terminal
27.4 MiB + 5.5 MiB = 32.9 MiB linuxdcpp
37.0 MiB + 1.8 MiB = 38.9 MiB BitSpirit.exe
36.8 MiB + 8.5 MiB = 45.3 MiB banshee
63.0 MiB + 4.5 MiB = 67.5 MiB Xorg
89.4 MiB + 11.4 MiB = 100.8 MiB firefox-bin

Private + Shared = RAM used Program

After coming back to my senses I started thinking about possible loopholes in my Gentoo install. Let’s have

clueless ~ # uname -a
Linux clueless 2.6.19-gentoo-r4 #7 Sat Jan 20 21:56:30 IST 2007 x86_64 AMD Athlon(tm) 64 Processor 2800+ AuthenticAMD GNU/Linux

and

clueless ~ # emerge --info
Portage 2.1.2-r5 (default-linux/amd64/2006.1/desktop, gcc-4.1.1, glibc-2.5-r0, 2.6.19-gentoo-r4 x86_64)
=================================================================
System uname: 2.6.19-gentoo-r4 x86_64 AMD Athlon(tm) 64 Processor 2800+
Gentoo Base System version 1.12.9
Timestamp of tree: Thu, 01 Feb 2007 22:20:01 +0000
dev-java/java-config: 1.3.7, 2.0.31-r3
dev-lang/python: 2.4.4
dev-python/pycrypto: 2.0.1-r5
sys-apps/sandbox: 1.2.18.1
sys-devel/autoconf: 2.13, 2.61
sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils: 2.17
sys-devel/gcc-config: 1.3.14
sys-devel/libtool: 1.5.22
virtual/os-headers: 2.6.19.2-r1
ACCEPT_KEYWORDS="amd64 ~amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=k8 -O2 -pipe -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c"
CXXFLAGS="-march=k8 -O2 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig collision-protect distlocks metadata-transfer parallel-fetch sandbox sfperms strict userfetch userpriv usersandbox"
GENTOO_MIRRORS="ftp://navya/gentoo http://gentoo.osuosl.org"
LINGUAS="en_US ja kn_IN"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=" "
SYNC="rsync://navya/gentoo-portage/"
USE="X aac aalib acl acpi alsa amd64 avahi bash-completion beagle berkdb bitmap-fonts bzip2 cairo cdr cjk cli cracklib crypt cscope cups dbus directfb dlloader dri dvd dvdr emboss encode esd examples fam ffmpeg firefox flac fortran gdbm gif gnome gpm gstreamer gtk gtk2 hal iconv imagemagick ipv6 isdnlog jpeg ldap libg++ libnotify mad midi mikmod mp3 mpeg ncurses nls nptl nptlonly ogg openal openexr opengl oss pam pcre pdf perl png ppds python quicktime readline reflection ruby samba scope sdl session spell spl ssl svg tcpd theora threads truetype truetype-fonts type1-fonts udev unicode vim-syntax vorbis x264 xml xorg xv xvid zlib" ALSA_CARDS="via82xx" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_US ja kn_IN" USERLAND="GNU" VIDEO_CARDS="fbdev nv nvidia vesa"
Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, MAKEOPTS, PORTAGE_RSYNC_EXTRA_OPTS

Help!