สตริงของฉันเป็นเส้นทางไฟล์เช่น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
รูปแบบ