Patch per glibc e binutils

Patch per glibc e binutils

Ho scovato un interessante messaggo nella mailing list delle binutils. Michael Meeks (Novell) propone a Ulrich Drepper (lavora sulle binutils e sulla glibc, Red Hat) un "evily hackish prototype" (letteralmente: "prototipo per un metodo diabolico") che sembra aumentare notevolmente la velocità dei processi di sistema, in particolare dei processi di rilocazione. Ispirato dal codice di Solaris, il sig. Meeks ha implementato una patch che lavora allo stesso modo della funzione -Bdirect di Solaris appunto. Con questa patch afferma di aver ottenuto sostanziali miglioramenti, ad esempio ottiene un incremento del 45% per il caricamento di OpenOffice.org!

Tecnicamente il metodo sembra funzionare, però ci sono numerose questioni da analizzare. La risposta di Drepper però è un po' drastica: afferma che il "prelinking" è molto più efficiente:

Forget it, we have prelinking, which is much more efficient.

L'obiezione di Meeks riguardo al prelinking è che per prima cosa non funziona per tutte le librerie (ad esempio la maggior parte delle lib di OO.o non possono essere prelinkate), inoltre il prelinking è una operazione che deve essere effettuata manualmente dall'utente finale.

Per chi è intessato all'argomento può leggere questo vecchio blog che contiene un approfondimento di ciò che avviene in un sistema *nix nel momento in cui un processo viene eseguito.