Jak zdiagnozować przyczynę drastycznie wolniejszego czasu potrzebnego do ukończenia „wyszukiwania plików w poszukiwaniu ciągu” podczas korzystania z Zend Studio?

0

Często używam Searchfunkcji w Zend Studiooprogramowaniu (które jest zbudowane na nim Eclipse). Często go używam. Prawdopodobnie 10-100 razy dziennie.

Doświadczyłem tajemniczej różnorodności czasu wyszukiwania, gdy używam Wyszukaj, aby znaleźć ciąg znaków w jednym z plików w projekcie. Często potrzeba tylko sekundy, aby zakończyć wyszukiwanie. Ale czasami zajmuje to 10-20 sekund i to jest problem, który staram się rozwiązać / zdiagnozować.

Co robię:

  • naciśnij Ctrl-H (otwiera menu wyszukiwania)
  • wpisz mój ciąg wyszukiwania
  • naciśnij Szukaj
  • zwykle zajmuje to około 1 sekundy lub mniej, ale czasami zajmuje to 10-20 sekund [i to jest problem]

Co widzę

wprowadź opis zdjęcia tutaj

Zdarza się to sporadycznie, nie przez cały czas, ale jednak zdarza się często.

Co próbowałem:

próbowałem

  • ograniczenie Working Setdo określonych podfolderów
  • Ograniczone File name patternsdo określonych rozszerzeń plików
  • Zdefragmentowałem mój dysk
  • Program antywirusowy nie wydaje się skanować
  • Korzystanie z narzędzia takiego jak Process Monitornie gromadzi wielu informacji. tzn. ostatnim razem, gdy go złapałem, wydaje mi się, że svchostrobił wiele żądań odczytu plików, ale to niewiele mi mówiło.

Pytanie

Jak zdiagnozować przyczynę spowolnienia wyszukiwania?

Statystyki

5461 plików, 352 folderów Łączny rozmiar plików na dysku 139 Mb

Zaktualizuj informacje o korzystaniu z Monitora procesów

Dwukrotnie uruchomiłem wyszukiwanie z ProcMon - za pierwszym razem było wolne, a za drugim szybko. Pierwsze wyszukiwanie trwało 40 sekund, czyli powolne . Drugie wyszukiwanie trwało 1,8 sekundy, czyli szybko . Powolne wyszukiwanie powtarza się po raz pierwszy, po tym jak nie korzystam z wyszukiwania przez jakiś czas, a potem znowu działa szybko.

Uruchomiłem diff zarówno dla zdarzeń powolnego, jak i szybkiego wyszukiwania, a wśród wszystkich CreateFile, QueryDirectory, Close File, ReadFile, QueryStandardInformationFileoperacji dla obu przebiegów różnica między dwoma przebiegami była - dodatkowe 2649 linii dla powolnego, podobnie jak:

Process Name: ZendStudio.exe
Operation: ReadFile
Path: jpgraph\src\jpgraph_plotband.php
Result: SUCCESS
Detail: Offset: 0, Length: 8,192, I/O Flags: Non-cached, Paging I/O, Priority: Normal

Zgaduję powód powolnego wyszukiwania

Domyślam się, że po raz pierwszy pliki są odczytywane, ale po raz drugi są one gdzieś w pełni buforowane i dlatego istnieje różnica prędkości. Wydaje mi się, że odczytywanie wszystkich plików za pierwszym razem zajmuje około 40 sekund i tylko 2 sekundy, aby przejść przez nie w pełni ponownie, gdy są buforowane.

W tym sensie buforowanie wyjaśnia tę niesamowicie dramatyczną różnicę prędkości. Zastanawiałem się jednak, czy mam powolny, stary lub bardzo rozdrobniony dysk, aby wyszukiwanie trwało 40 sekund, ponieważ nie mogę fantazjować, że czas wolnego wyszukiwania mieści się w dopuszczalnej normie.

Dennis
źródło
Narzekasz, ponieważ wyszukiwanie w wielu plikach zajmuje 10 sekund !?
DavidPostill
Tak. Szukam określonego zestawu plików, który zwykle zajmuje 1 sekundę. Tak więc 10 sekund jest bardzo zauważalne.
Dennis

Odpowiedzi:

1

Dennis

W przeszłości miałem problem taki jak twój i korzystałem z Monitora procesów z Sysinternals do diagnozowania mojego problemu. Ponieważ to oprogramowanie pokazuje wszystko, co dzieje się „pod maską” w systemie Windows, być może może ci pomóc.

Trudno jest znaleźć rozwiązanie w ten sposób, ale może to pomóc, jeśli masz cierpliwość i poprawnie ustawiasz filtry w Procmon. Musisz ustawić filtr dla swojego procesu (obrazu wykonywalnego), aby przechwytywał tylko to, co robi twoje oprogramowanie.

Analizując dostęp do dysku i rejestru, czasami można uzyskać wskazówki na temat problemu.

RHaguiuda
źródło