how to make KDE faster?

corey_s at cox.net corey_s at cox.net
Thu Feb 19 16:32:43 GMT 2004


On Fri, Feb 20, 2004 at 12:56:50AM +0100, Dexter Filmore wrote:
> On Thu, 19 Feb 2004 14:52:50 +0000
> corey_s at cox.net wrote:
> 
> > 
> > Have you used prelink?
> > 
> > http://freshmeat.net/projects/prelink/
> 
> Heck, this is interesting! Do I understand correctly that it can be used on
> already existing apps without recompiling?
> 

  Yup!

  Just install prelink, then run it - and it'll do its thing.

  Works great for c++ apps, it makes an obvious difference in kde.

  Here's the man page without options for more thorough info:


man prelink
<snip>
DESCRIPTION
       prelink is a program which modifies ELF shared libraries and ELF dynam-
       ically linked binaries, so that the time which dynamic linker needs for
       their relocation at startup significantly decreases  and  also  due  to
       fewer  relocations the run-time memory consumption decreases too (espe-
       cially number of unshareable pages).  Such  prelinking  information  is
       only  used  if  all its dependant libraries have not changed since pre-
       linking, otherwise programs are relocated normally.

       prelink first collects ELF binaries which should be prelinked  and  all
       the  ELF shared libraries they depend on. Then it assigns a unique vir-
       tual address space slot for each library and relinks the shared library
       to  that base address.  When the dynamic linker attempts to load such a
       library, unless that virtual address space slot is already occupied, it
       will  map it into the given slot.  After this is done, prelink with the
       help of dynamic linker  resolves  all  relocations  in  the  binary  or
       library against its dependant libraries and stores the relocations into
       the ELF object.  It also stores  a  list  of  all  dependant  libraries
       together  with  their  checksums into the binary or library.  For bina-
       ries, it also computes a list of conflicts (relocations  which  resolve
       differently  in  the  binary's  symbol search scope than in the smaller
       search scope in which the dependant library was resolved) and stores it
       into a special ELF section.

       At  runtime,  the  dynamic  linker  first  checks whether all dependant
       libraries were successfully mapped into their designated address  space
       slots  and whether they have not changed since the prelinking was done.
       If all checks are successful, the dynamic linker just replays the  list
       of  conflicts (which is usually significantly shorter than total number
       of relocations) instead of relocating each library.

___________________________________________________
This message is from the kde mailing list.
Account management:  https://mail.kde.org/mailman/listinfo/kde.
Archives: http://lists.kde.org/.
More info: http://www.kde.org/faq.html.




More information about the kde mailing list