Recai Oktaş yazmış: > Merhaba, > > Bir kaç zamandır dikkatimi çeken bir sorunla bugün ilgilenme fırsatı > buldum. Benzer sorundan muzdarip olanlara da yararlı olabilir düşüncesiyle > buraya yazayım dedim. > > Midnight Commander, nam-ı diğer "mc" sık kullandığım bir programdır. Bu > sık kullandığım programda en sık yaptığım işlem de F3 (veya Enter) tuşu ile > dosyalara bakmak veya F4 ile düzenlemek. Gel gelelim makinede tam tarihini > hatırlayamadığım bir güncellemeden beri mc'deki bu göz atma ve düzenleme > işlemlerinde, özellikle büyük dosyalarda, olağanüstü bir yavaşlık oluyordu. > Örnek vermem gerekirse, 170K civarı bir dosyaya (1.4GHz'lik Pentium M > işlemcili makinede) F3 ile bakınma işlemi yaklaşık 9 sn sürüyordu. > > strace(1) ile programın ne iş çevirdiğini inceledim ve bu bakınma/düzenleme > işlemlerinde mc'nin dosya tipini tayin etmek için file(1) komutunu fork > ettiğini farkettim. Yani (en azından bu makinede) sorun file(1) komutunda: > > $ du -h iri.tex > 172K iri.tex > > $ file --version > file-4.21 > magic file from /etc/magic:/usr/share/file/magic > > $ time file iri.tex > iri.tex: LaTeX 2e document text > > real 0m9.232s > user 0m8.865s > sys 0m0.016s > > Görüldüğü gibi file(1) kararını ~9 s'de veriyor! Süreç zamanı ağırlıklı > olarak "user" tarafında olduğundan bunun çekirdek ile alakalı olmadığını > düşünebiliriz. Sorun Türkçe'ye özel mi? > > $ (export LC_ALL=en_US.UTF-8; time file iri.tex) > iri.tex: LaTeX 2e document text > > real 0m3.190s > user 0m3.092s > sys 0m0.008s > > Biraz öyle görünüyor. Devam edelim... > > $ (export LC_ALL=C; time file iri.tex) > iri.tex: LaTeX 2e document text > > real 0m0.076s > user 0m0.060s > sys 0m0.000s > > Sonuç: > > $ echo "9.232/0.076" | bc > 121 > > 121 katlık bir fark! Öyle anlaşılıyor ki file(1)'ın bu yeni sürümlerinde > öncelikle UTF8 ile alakalı ve Türkçe işin içine girdiğinde katmerleşen bir > sorun var. Burada verdiğim rakamları (mümkünse farklı dağıtımlarda) siz de > doğrularsanız memnun olurum, hata raporu geçmeden önce emin olalım. Geçici > bir çözüm olarak aşağıdaki adımları uyguladım: > > $ cp /usr/bin/file /usr/bin/file.exec > $ cat >/usr/bin/file > #!/bin/sh > LC_ALL=C exec /usr/bin/file.exec "$@" > (bu noktada Ctrl-D tuşluyoruz) > > Tabii bu çözümün yan etkileri olacaktır mutlaka. Yine de önceden 9 s'de > açılan bir dosyayı saniye altında açmak için buna değer... > etch'deki sürüm 4.17'de sorun yok gibi görünüyor.
@debian:~$ file --version file-4.17 magic file from /etc/magic:/usr/share/file/magic @debian:~$ ls -lh mbox -rw------- 1 mert mert 209K Dec 22 20:16 mbox @debian:~$ time file mbox mbox: UTF-8 Unicode mail text real 0m0.066s user 0m0.048s sys 0m0.008s @debian:~$ (export LC_ALL=en_US.UTF-8; time file mbox) mbox: UTF-8 Unicode mail text real 0m0.062s user 0m0.040s sys 0m0.016s @debian:~$ (export LC_ALL=C; time file mbox) mbox: UTF-8 Unicode mail text real 0m0.068s user 0m0.044s sys 0m0.008s @debian:~$ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

