Human Readable   

 

     
   
     

Optimizing KDE for Older Hardware

© Copyright Darrell Anderson.

(Reviewed March 2007)

Introduction

I have been using KDE (K Desktop Environment) almost from the moment I started playing with GNU/Linux. Back in the version 2.x days, KDE was unusable on my 233 MHz Pentium MMX computer despite having 256 MB of RAM and an old but reliable Diamond Stealth 3000 3D video accelerator card. The word slow did not come close to describing the response I experienced. Since those days, I have updated my box to a 400 MHz K6-III+ CPU and KDE since version 3.0 has become snappier and more responsive.

I also use a 350 MHz Pentium II (Deschutes) with 256 MB of RAM and an AGP Creative Labs Voodoo Banshee video card. As of this writing, the first box is only 8 years old and the second 7 years. Although neither box is considered a “screamer” these days, neither is hardly ancient or obsolete by most definitions.

I still use the same “old” hardware and I have no desire to spend money on new hardware. I tend to be old-fashioned and environmentally conservative with respect to using resources. Therefore I tend not to buy new things just to buy new things. If my existing tools still function then I prefer to keep using those tools. I choose not to succumb to the “everything is disposable” and “resources are infinite” mentality. This is a personal choice. This perspective means learning how to adapt older hardware to modern software written and developed by cutting and bleeding edge “young pups.”

Currently I use Slackware 11.0 and KDE 3.5.5. In this environment, KDE is noticeably faster than those unbearable 2.x and Pentium MMX days, but remains slower than my NT4 Workstation operating system. Yes, KDE offers more functionality than NT4, and Konqueror as a file manager along with the various KIO options is a treat, but years of using NT4 spoiled me. I wish KDE was more responsive. I try not to place too much emphasis on speed alone, but the difference is visible. In NT4 everything opens and responds almost immediately, which is not always the case for KDE—even at version 3.4.3. The difference is not exasperating, unbearable, or anything to scream about, just noticeable. NT4 is still the speed champ on my boxes.

The cautious word about using KDE with older hardware is that less is more. KDE offers many bells and whistles and those people with newer hardware easily can enjoy those options. Not so with older hardware. Many people with faster or modern hardware claim KDE is unusable on old boxes, but that statement leaves much to be desired. Sure, if all the bells and whistles remain enabled, then KDE will be intolerable on older hardware. Yet KDE runs faster on my older boxes than some people with 1 GHz boxes with 512 MB of RAM. I’m uncertain why, but I am sure there many variables to consider. Do not be so quick to write off KDE on older hardware. Patience is the name of the game.

People using older hardware, and I suspect the number remains significant, typically come from a world of Windows 95/98/ME/NT4 where the desktop is fast on their older boxes. On older boxes KDE is adequate, but not as fast or responsive as Windows. The typical user is not going to understand why or more importantly, care.

I would like to see a “KDE Light,” or alternately, seeing the KDE developers focus on improving KDE specifically for older hardware. At one time some people tried to create a KDE Light but I think that project evaporated. And I think the goal was primarily package reduction, not speed improvements. Package reduction is already possible—simply do no install unwanted or unneeded packages such as games, software and web development, edutainment, etc. However, my frustration with KDE is not the number of programs and apps—essentially that is a point of disk storage space, which for many people today is a non-issue. My issue is desktop response speed.

One area I believe that can be improved is to reduce the features of Konqueror as a file manager. Eliminate all the preview functions and let the file manager manage files. There are plans to introduce an alternate file manager, Dolphin, but sadly development in the 3.x branch of KDE has stopped.

Some people might argue that the solution is simply “get with the times” and buy new hardware. That is a sad statement. In fact, a primary response of the KDE developers at their online wiki is to buy faster hardware, “A computer with 1GHz processor and 256MB RAM (a configuration which is probably not even being offered by shops these days anymore).” I’m unsure which planet those people reside, but my experience and observation is that there are many older boxes still serving people quite well. A lot. Additionally, from a philosophical perspective, many people in developing regions of the world are using older hardware. Therefore, if free software advocates hope to displace proprietary software, then they had better pay attention to older hardware users. Generally, only developers and hobbyists are hell-bent on using the latest hardware. Many people are content with their older hardware and software. For people like me, who possess stable and rock solid boxes using other operating systems, the simple response to “get with the times” is to shrug and continue using those other operating systems. The “more hardware” response fails to impress or motivate.

I don’t see older hardware disappearing any time soon, especially in many developing regions of the world. Each release of KDE gets faster and that is good to see. I have read that the newer QT4 libraries will improve speed in a noticeable manner, so perhaps I’m just singing out loud. Possibly after KDE 4 is released the speed issue will disappear. We’ll see.

There are people who recognize the issue of using older hardware, such as the RULE (Run Up to date Linux Everywhere) and LTSP (Linux Terminal Server Project) projects. Those are excellent projects, but I think the issue is more fundamental.

I retain pleasant memories of using Windows For Workgroups (WFWG) 3.11. I am not flaming or ranting, but WFWG 3.11 is an example of a decent light desktop environment. Well, okay, I also used the Norton Desktop, which provided a significant difference in the desktop aesthetics from the original Microsoft design. A design which Microsoft developers later largely incorporated into Windows 95. I believe Microsoft developers made a significant mistake when they abandoned text-based configuration files for that obnoxious registry. Regardless, my 486 box ran that operating system with a whopping 16 MB of RAM and a huge 512 MB hard drive. The system was fast. And stable—although I invested time tweaking the system. If I use that environment and hardware as a benchmark for simplicity, speed, and stability, then all of the modern “full” GNU/Linux desktop environments fail to match. Yes, Windows 2000 and XP fail to match too.

An alternate argument is to use a GUI (graphical user interface) other than KDE. True, this option exists, but users lose the many wonderful tools provided in the complete KDE. Probably more important to many users, however, is most of those alternate GUIs provide no easy point-and-click access to configuring the desktop—almost all of the customization is performed through manual editing. After all, there is a difference between a window manager and a desktop environment. Many people simply do not possess the time or desire to tweak a box at that level—and they never will.

If the many modern GNU/Linux window manager developers included additional graphical-based configuration tools, sort of a quasi desktop environment, such as 1) configuring a mouse for left-handed use, 2) configuring key maps, 3) as well as providing a good file manager, and do these things all with a consistent look-and-feel, then I would be tempted to investigate further. None of the basic window managers provide this approach. In the lightweight desktop environment category, Xfce seems to take this approach, but for me, I never have liked GTK aesthetics. That is important if I am going to look at a computer screen many hours a day. Additionally, Xfce lacks basic features I expect in a computer desktop.

I want to see a GNU/Linux desktop environment that is as fast as my “old” and “obsolete” NT4 Workstation. I like KDE. As a desktop KDE is easily more configurable and provides more options and functions, but that speed issue annoys me every time I use KDE. Some people will roll their eyes that I continue to use NT4, but I still drive my 1988 pickup truck because there is nothing wrong with the truck. Like an old pair of jeans, my truck and NT4 fit me very well. I regularly tinker in Slackware and KDE, but I have not yet migrated for my own reasons. I purposely never updated to W2K or XP simply because my NT4 does all I need and does so quickly and is solid as a rock.

Regardless, all is hardly lost. KDE can be tweaked to perform faster on older computers. Bear in mind that this Mini How-To is for people using their computers as a basic mom-and-pop office workstation. Such people tend not to be preoccupied or concerned with high-end video, graphics, music, software and web development, etc. A presumption embedded in this document is that readers want to use their computers more as a basic production tool rather than a hobby tool.

Foundations

Much like building a house, the foundation is important. Tweaking and optimizing KDE will mean little in actual performance gains if the foundation is improperly laid.

  1. Probably the first area users should focus is the distro they select. Some distro vendors try to be all things to all people and that effort results in a lot of unnecessary complication and overhead. This is especially true with distros where the vendor tries to merge several GUIs into a seamless operation. Doable, for sure, but clunky and slow. If users have decided to use KDE as their primary GUI, then select a distro that does not use the all-for-all approach.
  2. Along with the distro choice, use the 2.6 kernel rather than the 2.4. This is rather standard these days, but there is a noticeable difference in speed between the two kernels.
  3. Another area where users should focus is underneath the GUI: the X server environment. That is, users should ensure that X is configured correctly and there are no errors in the X server boot log (typically located at /var/log/Xorg.0.log).
  4. Ensure the correct X driver is installed for the video card. The generic VESA driver will not run as quickly or efficiently as dedicated drivers.
  5. Select a screen resolution that your system will handle easily. Although larger monitors handle screen resolutions of 1280x1024 and higher, some people might be content at 1024x768.
  6. A similar X tweak is to run the video resolution at a lower screen depth. Many people with new hardware assume that everybody needs to run their boxes at 24-bit (16,777,216 colors) depth. Not so. To improve video response, consider running X at a 15-bit (32,768 colors) or 16-bit (65,536 colors) depth. Note: KDE provides no direct way to reduce color depth—manually edit the /etc/X11/xorg.conf file.
  7. Related to configuring X is ensuring there are no problems with fonts. Inspect the X server boot log for clues. KDE uses font caches, therefore the number of fonts installed should not impact performance in any dramatic manner. However, ensure all font directories contain a font cache file.
  8. If the budget allows, buy additional RAM. The Linux kernel tends to be RAM intensive rather than CPU intensive. Most older Pentium Socket-7 motherboard (Pentium I and MMX) will support up to 256 MB of RAM. Adding RAM will improve performance noticeably, even with older motherboards.
  9. If the budget allows, obtain a newer hard drive. Bear in mind that the BIOS of older motherboards will limit the size and speed of the hard drive. However, used 20 and 40 GB drives manufactured only a few years ago are available for far less than one pays for new drives and need not impact the budget deeply. These drives minimally are ATA-33 and use DMA (direct memory access). Except for hobbyists and certain dedicated applications, many typical desktop users will never fill a 20 GB drive to capacity. Important, however is that the drive should support DMA.
  10. Enable DMA. DMA will improve performance noticeably. For some distros, this option might require adding some lines to the startup rc.local script using the hdparm command.

Tweaking KDE

After establishing these foundations, users can tweak KDE to perform well on older hardware. Several options are listed at the KDE wiki.

  1. Update to a recent version of KDE. The updating game gets old real fast, but generally, with KDE a recent version means improved performance.
  2. Disable wallpaper. Select a pleasing and comfortable desktop screen color. (Configure Desktop.)
  3. Disable background gradients. (Configure Desktop.)
  4. Disable shadowed fonts. (Configure Desktop, Advanced Options.)
  5. Disable desktop icon tool tips. (Configure Desktop, Behavior.)
  6. Minimize the number of device icons on the desktop. (Configure Desktop, Behavior.)
  7. Virtual desktops. Limit this to two desktops, possibly only one. Consider that most people are not multi-taskers. Typically most people concurrently run only two to three desktop programs. Having a bunch of programs running in standby, which is how virtual desktops basically work, means a lot of extra overhead that most typical users do not need. Although useful, many people get by comfortably with only one desktop. (Configure Desktop, Multiple Desktops.)
  8. Use a plain blank screen saver. (Configure Desktop, Screen Saver.)
  9. Disable the mouse cursor launch feedback. (Appearance and Themes, Launch Behavior.)
  10. Disable themes. Yes, themes add a degree of personalization, but with older hardware, at the sacrifice of speed and response.
  11. Consider using the KDE Classic widget set and KDE 2 window decorations. Yes, this ends up looking like MS Windows 95, but this desktop is easy on system resources. (Appearance and Themes, Style; Appearance and Themes, Window Decorations.)
  12. Disable displaying window content when moving or resizing windows. (Desktop, Windows Behavior.)
  13. Disable shading animation and hovering. (Desktop, Window Behavior.)
  14. Disable transparent and translucent menus and panels. These bells and whistles are CPU and memory intensive. (Desktop, Window Behavior.)
  15. Disable GUI effects, such as cascading menus and drop shadows.
  16. Mouse cursor. A simple non-themed mouse pointer is sufficient for most people.
  17. System sounds. Reduce the number of system sounds being used and use sound files that are small in size and load quickly.
  18. Enable Konqueror preloading. Konqueror will load faster and Konqueror is too useful as a file manager not to have this option enabled. (Control Center→KDE Components→KDE Performance)
  19. Disable as many KDE specific services as practical. (Control Center→KDE Components→Service Manager)

Hopefully these suggestions will noticeably improve your KDE performance with your older box.

Finis.

Table of Contents