Preloading Thunderbird

Şuraya atla: kullan, ara

Bu SUPER Projesi'ndendir. Sadece Thunderbird'e uyguladım.

Önyükleme (preloading) hakkındaki tüm detaylar için Preloading Internals'a bakın.

parse_strace'yi alın ve bulabileceğiniz bir yere koyun. Veya şu komut dizisini parse_strace isimli bir dosyaya yapıştırın.

parse_strace

#!/bin/bash

test -z $1 && exit -1

#özel veriye yapılan göndermeleri kaldırın: /home/ /root/ /tmp/
#önbelleklenemeyen dosya sistemlerine yapılan göndermeleri kaldırın: /proc/ /dev/ /sys/
#sonda istenmeyen satırların kaymasına karşı "/" için grep yapın

#(l)stat(64) 'in çağrıldığı her yeri süzün
grep stat ./"$1" | grep -v ENOENT | grep -v fstat \
    | grep -v /proc/ | grep -v /dev/ | grep -v /sys/ \
    | grep -v /home/ | grep -v /root/ | grep -v /tmp/ \
    | grep / | sed 'sI^.*("II' | sed 'sI".*II' \
    | sort | uniq | grep / | sed 'sI^/Istat /I' > "$1_statted"

#bir dosyanın açıldığı her yeri süzün
grep -v stat ./"$1" | grep open | grep -v ENOENT \
    | grep -v /proc/ | grep -v /dev/ | grep -v /sys/ \
    | grep -v /home/ | grep -v /root/ | grep -v /tmp/ \
    | grep / | sed 'sI^.*("II' | sed 'sI".*II' \
    | sort | uniq | grep / | sed 'sI^/Iopen /I' > "$1_opened"


#yola göre sıralayın: diskte daha az kafa hareketi
#uniq edin: aynı dosya için bir "open" ve bir "stat" girişi varsa,
#sadece "open" kalacak, fazladan stat yapmaya gerek yok
cat "$1_statted" "$1_opened" | sort -k 2 | uniq --skip-fields=1 > "$1_preload"

Önyükleme (Preload) Adımları

  1. önyüklemeyi (preload) kurun
  2. en son thunderbird'i kurun
  3. bir geçici (temp) dizin oluşturun
  4. geçici dizine geçin
  5. thunderbird'i profillemek için strace kullanın
  6. girişe (root) geçin
  7. bir önyükleme komut dosyası oluşturmak için parse_strace komut dosyasını kullanın (yukarıdaki komut dosyasına bakın)
  8. önyükleme önbelleğini güncelleyin
  9. önyükleme komut dosyasını taşıyın
  10. uygulama önyükleme komut dosyasını güncelleyin

yast2 --install preload
yast2 --install thunderbird
mkdir /tmp/preload_tbird
cd /tmp/preload_tbird
strace -fF -e open,process thunderbird 2>thunderbird_strace
su -
sh parse_strace thunderbird_strace
mv thunderbird_strace_preload /etc/preload.d/thunderbird
update_preload
echo 'preload /usr/bin/thunderbird "thunderbird"' >> /usr/bin/appspreloader.sh