▲GN⁺ 2025-03-13 | parent | ★ favorite | on: Krep - grep 보다 5배 빠른 문자열 검색 도구(davidesantangelo.github.io)Hacker News 의견 CPU 기능(예: AVX2)은 런타임에서 감지되어야 함 ifdef는 컴파일러가 지원하는지 빌드 타임에만 감지함 프로그램은 컴파일러가 AVX2를 지원할 때만 컴파일됨 런타임에서 CPU가 AVX2를 지원하는지 확인해야 함 프로젝트에서 "구성 시간에 CPUID 플래그와 실제 명령어 실행 테스트를 통해 감지"라는 부분이 있음 SSE4.2와 AVX2 명령어를 자동으로 활용할 수 있음 krep 프로젝트에 대한 블로그 게시물 소개 홈페이지에서 ripgrep보다 빠르다고 나옴 전체 ripgrep 벤치마크와 비교해보고 싶음 madvise() 관련 오류 발생, Makefile의 CFLAGS에 '-D_GNU_SOURCE' 추가 필요 테스트 케이스의 중요성 멀티스레드 파일 검색에서 청크 경계 문제는 신경 쓰임 단순 검색에 새로운 엣지 케이스를 도입함 파일에 한 글자를 추가하면 매치가 깨질 수 있음 빌드 문제 해결 후 벤치마크 결과 첫 번째 벤치마크 시도에서 속도가 느림 ripgrep이 krep보다 1.52배 빠름 매치 빈도가 높은 벤치마크 시도 krep이 ripgrep보다 3.40배 빠름 매치 수가 크게 차이남 krep이 정확한 결과를 제공하지 않을 수 있음 추가 벤치마크 시도 ripgrep이 특정 패턴을 찾는 데 더 빠름 krep이 매치를 찾지 못함 ripgrep의 알고리즘과 메모리 맵 사용 ripgrep은 고급 서브스트링 검색 알고리즘 사용 메모리 맵과 병렬 처리 사용 krep도 병렬 처리 사용, 단일 파일 검색 시 멀티스레드 사용 벤치마크 결과에 대한 의문 ripgrep이 5GB 파일에서 패턴 검색 시 40초 이상 걸린다는 것은 이상함 OP에게 벤치마크 재현 방법 요청 krep의 이름에 대한 의견 grep의 "re"는 정규 표현식을 의미함 krep은 정규 표현식을 사용하지 않으므로 이름이 잘못된 것일 수 있음
Hacker News 의견
CPU 기능(예: AVX2)은 런타임에서 감지되어야 함
krep 프로젝트에 대한 블로그 게시물 소개
테스트 케이스의 중요성
빌드 문제 해결 후 벤치마크 결과
매치 빈도가 높은 벤치마크 시도
추가 벤치마크 시도
ripgrep의 알고리즘과 메모리 맵 사용
벤치마크 결과에 대한 의문
krep의 이름에 대한 의견