สตริงของฉันเป็นเส้นทางไฟล์เช่นs/14/11/13/15/n7ce49B_235_25ed2d70.jpg; รูปแบบของฉันค่อนข้างเรียบง่ายเหมือนn7ce49B_.+กันหมด
ฉันทำงานGNU grep 2.6.3ภายใต้Debian 6.0.10บนเซิร์ฟเวอร์Dell DL360G7 (ฉันพูดถึงเพียงให้ความรู้สึกของเครื่องนี้เต็มประสิทธิภาพ) ด้วย HDD 15k และคำสั่งนี้: time LC_ALL=C grep -E -f path_to_patterns_file path_to_strings_fileไม่สามารถทำให้เสร็จสมบูรณ์ - เซิร์ฟเวอร์แลกเปลี่ยนไม่ดีเกินไป ด้วยรูปแบบ 20k ใช้เวลานานกว่า 3 ชั่วโมง
ดูเหมือนว่าไม่มีเหตุผลสำหรับฉัน
ตามคำขอความคิดเห็นมีไฟล์: รูปแบบไฟล์เส้นทาง 20k
หนึ่งอาจทดสอบและปรับจำนวนบรรทัดอินพุตและรูปแบบด้วย:
xxd -p /dev/urandom | fold -sw 100 | head -n 1250 |
grep -Ef <(xxd -p /dev/urandom | fold -sw 10 | head -n 20000)
grepระหว่าง
xxd -p /dev/urandom | fold -sw 100 | head -n 1250 | grep -Ef <(xxd -p /dev/urandom | fold -sw 10 | head -n 20000)หนึ่งสามารถทำซ้ำกับ ดูเหมือนว่าเวลาที่ใช้ในการรวบรวม regexps และการจัดสรรหน่วยความจำจำนวนมาก ด้วย-Fแทน-Eมันทันที
n7ce49B_.+เท่ากับn7ce49B_.
90kคำอธิบายมี20Kรูปแบบ