Ciągle przeszukuję tę samą bazę kodów. Chociaż działa świetnie, każde polecenie zajmuje około 10 sekund, więc myślę o sposobach przyspieszenia.
Czy można grep
użyć jakiegoś indeksu? Rozumiem, że indeks prawdopodobnie nie pomoże w przypadku skomplikowanych wyrażeń regularnych, ale używam głównie bardzo prostych wzorców. Czy istnieje indeksator dla tego przypadku?
EDYCJA: Znam ctagi i tym podobne, ale chciałbym przeprowadzić wyszukiwanie pełnotekstowe.
Odpowiedzi:
co z cscope , czy to pasuje do twoich butów?
Umożliwia wyszukiwanie kodu dla:
źródło
Indeksowanie pełnotekstowe
Istnieją narzędzia takie jak recoll , swish-e i sfinks, ale musisz sprawdzić, czy mogą one obsługiwać potrzebne kryteria wyszukiwania.
Przypomnij
Swish-e
Sfinks
grep
Dziwi mnie, że grep działa tak wolno, jak to opisujesz. Czy możesz zmniejszyć liczbę przeszukiwanych plików? Na przykład, gdy muszę tylko przeszukać pliki źródłowe w poszukiwaniu jednego pliku wykonywalnego (spośród wielu w projekcie), podaję grep nazwy z polecenia, które wyświetla listę plików źródłowych dla tego programu:
sources
to program specyficzny dla mojego środowiska programistycznego, ale możesz mieć (lub być w stanie zbudować) coś równoważnego.Zakładam, że wypróbowałeś oczywiste techniki, takie jak
Czytałem sugestię, że
-P
opcja prądugrep
może znacznie przyspieszyć wyszukiwanie.źródło
grep, nie. Ale istnieje kilka programów, które używają indeksów i mają na celu bazę kodu.
ctags
(istnieje wersja dostarczana z vimem),etags
(przeznaczone do użycia z emacsem),global
(bardziej niezależne od edytora) to ta, o której teraz myślę, ale prawdopodobnie są inne.źródło
Możesz skopiować bazę kodów na dysk RAM.
źródło
jeśli chcesz użyć wyszukiwarki pełnotekstowej .. użyj jednej:
źródło
Nie, nie sądzę. Ale może być proste rozwiązanie: spróbuj potwierdzić. Myślę, że jeśli dasz temu szansę, znajdziesz ją znacznie szybciej niż grep, wymaga krótszych ciągów wyszukiwania, aby uzyskać lepsze wyniki wyszukiwania, i ma wiele pożądanych funkcji, przy użyciu tych samych przełączników poleceń. Jedną z rzeczy, która sprawia, że jest szybszy (choć nie indeksowany) jest to, że ignoruje o wiele więcej rzeczy, których nie chcesz przeszukiwać. Jest napisany w Perlu i używa wyrażeń regularnych Perla (a zatem ma również porty Mac i Windows).
http://betterthangrep.com/
źródło