Tamam, Darren'e benzer bir sonuca vardım, ancak biraz farklı profil oluşturma mekanizması (NB yavaş giriş hala Yosemite'de gerçekleşebilir).
OS X sample profiler komutunu kullanarak yeni bir giriş penceresi başlattığınızda gerçekte neyin çalıştığını anlamanın bir yolu .
Normal bir girişin hangi komutu çalıştırdığını öğrenin
$ ps -ef | grep login
Gibi bir şey göreceksiniz login -pfl username /bin/bash -c exec -la bash /bin/bash
profile_login.sh
Ekleyerek, aşağıdaki içeriğe sahip bir komut dosyası adı oluşturun.
-c ""
Bu bashın derhal geri dönmesini istemek için keşfedilen komutun sonuna;
login -pfl username /bin/bash -c exec -la bash /bin/bash -c "" &
sudo sample $! -mayDie # sample the above command
Çalıştırılabilir yap
$ chmod u+x profile_login.sh
ve sudo kullanarak çalıştırın ( sample
komut gerektirir)
$ sudo ./profile_login.sh
Tamam öyleyse devam et ve koş. Örneğin, purge
ilk önce komutu çalıştırarak . Kutumda büyük bir çıktı grafiği var. "En büyük numaralı şubeleri" arıyorum (genellikle en üstte) Aşağıdaki iki en büyük suçluyu gördüm :
pam_start
Pam auth lib görüntülerini açıyor gibi görünen bir şeyden biri
+ ! 1068 pam_start (in libpam.2.dylib) + 132 [0x7fff97295ab0]
+ ! : 1066 openpam_dynamic (in libpam.2.dylib) + 120 [0x7fff97293d14]
+ ! : | + ! 1042 coresymbolication_load_image(CSCppDyldSharedMemoryPage*, ImageLoader const*, unsigned long long) (in dyld) + 143 [0x7fff66725411]
+ ! : | + ! : 1042 mach_msg_trap (in dyld) + 10 [0x7fff6674a472]
ve bunu bazen başka bir suçlu izliyor getlastlogxbyname
+ ! 583 getlastlogxbyname (in libsystem_c.dylib) + 212 [0x7fff92b3ef7a]
+ ! : 566 asl_file_open_read (in libsystem_asl.dylib) + 143 [0x7fff8c27030d]
+ ! : | 566 __open_nocancel (in libsystem_kernel.dylib) + 10 [0x7fff97b39012] + ! : | 566 __open_nocancel (in libsystem_kernel.dylib) + 10 [0x7fff97b39012]
Yani temelde, iki suçlu var. Biri pam
(bir tür kimlik doğrulama sistemi) diğeri ise asl
"en son giriş bilgilerinizi algıla" öğesidir. Yani görünüşe göre sadece/private/var/log/asl/*.asl
dosyalarınızı silmek yeterli değildir. Pam yükleme zaten makinemde çok daha pahalı, [SSD]. Yukarıdaki betiği çalıştırmaktan çekinmeyin ve sisteminizin aynı olup olmadığını görün. İlginç bir şekilde, bu yöntem çağrıları için kaynak kodunun çevrimiçi olarak da erişilebilir olduğu görülüyor, örneğin openpam_dynamic
Darren'ın cevabını takip edip "açık mermi açık" yerine / bin / bash dışındaki bir şeyi tercih edersem, yeni terminal sekmeleri başlatmak için kullanılan aşağıdaki satırları görürüm:
$ ps -ef | grep login
... login -pfql packrd /bin/bash -c exec -la bash /usr/bin/bash
Öyleyse şimdi sample
yeni giriş komutunda aynı numarayı kullanırsam
login -pfql username /bin/bash -c exec -la bash /usr/bin/bash -c "" &
sudo sample $! -mayDie
çok daha küçük bir istif üretildi, en büyük suçlu şu:
+ 8 pam_end (in libpam.2.dylib) + 190 [0x7fff97294ebb]
+ ! 6 coresymbolication_unload_image(CSCppDyldSharedMemoryPage*, ImageLoader const*) (in dyld) + 143 [0x7fff6e0f634f]
Bunun nedeni "-q" girişinin şimdi kullanılmakta olduğudur. Görünüşe göre bu parametre hem Pam modüllerini yüklemek atlar ve son giriş zamanı (her iki suçluların) aranırken. login
Komutun belgelerine göre , ~/.hushlogin
dosyaya dokunmak aynı şeyi yapmalı, ancak görünüşe göre bu artık işe yaramıyor [en azından benim için 10.10 ile].
Bu yüzden, özet olarak, /private/var/log/asl/*.asl adresinin kaldırılması yeterli değil (denememde, yalnızca gerçek yavaşlamanın en fazla 1 / 3'ünü oluşturuyordu. daha büyük bir yüzde için eminim).
Her neyse, benzer komut dosyalarını kullanarak, yerel makinenizin ne hızlanmasına neden olduğunu söyleyebilmeli ve yukarıdaki düzeltmenin sizin için geçerli olup olmadığını görebilmelisiniz. Burada yorum yapmaktan çekinmeyin.
GÜNCELLEME: çağrıldığında coresymbolication_load_image
bile tonlarca zaman alabilir gibi görünüyor login -pfql
(muhtemelen bazı pam kimlik doğrulama modülleri veya diğerlerinin merkezi bir giriş sunucusuna veya bazı gariplere "çevirmesi gerekiyor", bu nedenle 3. bir tarafın yanıtını beklemesi gerekiyor. ). Böylece bulduğum tek gerçek geçici çözüm iTerm2'yi kullanmak ve tercihlerini -> profiller -> genel -> Komut olarak değiştirmekti /bin/bash
.
.bash_profile
(~/.profile
bu arada kontrol et ). Ayrıca: bash yüklenirken yazmaya başlayabileceğinizi ve genellikle yazdıklarınızın hazır olduklarında komut istemine kopyalanacağını unutmayın.