GNU grep hızlıdır çünkü HER GİRİŞ BYTE'E BAKMAKTAN KAÇINIR.
Buna o her bayt ÇOK BİRKAÇ yönergeleri çalıştırır çünkü GNU grep hızlı
yapar bakmak.
GNU grep, ilk önce hedef dizginin son harfini arayan iyi bilinen Boyer-Moore algoritmasını kullanır ve eşleşmeyen bir karakter bulduğunda girdide ne kadar ileri atlayabileceğini söylemek için bir arama tablosu kullanır.
GNU grep ayrıca Boyer-Moore'un iç döngüsünü açar ve Boyer-Moore delta tablosu girişlerini, her açılmış adımda döngü çıkış testi yapmasına gerek kalmayacak şekilde ayarlar. Bunun sonucu, sınırda, GNU grep'in gerçekte baktığı her girdi baytı için çalıştırılan 3 x86 komut ortalamasından daha az olmasıdır (ve birçok baytı tamamen atlar).
GNU grep, ham Unix girdi sistemi çağrılarını kullanır ve verileri okuduktan sonra kopyalamaktan kaçınır. Dahası, GNU grep GİRİŞİ HATLARA KIRMAKTAN KAÇINIR. Yeni satırları aramak, grefti birkaç kat yavaşlatır, çünkü yeni satırları bulmak için her bayta bakması gerekir!
Dolayısıyla, satır yönelimli girdi kullanmak yerine, GNU grep ham verileri büyük bir arabelleğe okur, Boyer-Moore kullanarak arabelleği arar ve yalnızca bir eşleşme bulduğunda gider ve sınırlayıcı yeni satırları arar (Bazı komut satırı seçenekleri - n bu optimizasyonu devre dışı bırakın.)