2013-03-14 19 views
5

Nie mogę powiedzieć, dlaczego to robi, ale od kilku dni pomoc zajmuje dużo czasu. Albo wbudowane (wybranie funkcji, wybranie "pomocy"), albo użycie komend doc lub doc lub doc lub doc lub doc. Polecenie doc cmdname trwa około 10 sekund, aby wyświetlić okno pomocy. Zrobiłem, biorąc fwrite jako przykład, spróbuj profile on;doc fwrite;profile viewer i kopanie przez króliczej nory, kiedy przyjechałem na prywatnej metody Matlab Java, który bierze na zawsze:Pomoc Matlaba, polecenia doktora bardzo powolne

tic; 
com.mathworks.mlwidgets.help.HelpUtils.getDocCommandArg('matlab\fwrite', true); 
toc 

Elapsed time is 9.993832 seconds. 

jakiś pomysł co może być przyczyną tego problemu? Zdarza się to także w trybie awaryjnym, bez innych działających programów niż MATLAB. Spróbowałbym kompletnej reinstalacji MATLAB-a, ale gdybym mógł uniknąć tego, to byłoby wspaniale.

+2

Którą wersję Matlab używasz? –

+0

Niech zgadnę ... 2012b? – yuk

+0

Tak, 2012b (dokładniej 8.0.0.783) – rienafairefr

Odpowiedz

1

Problem został rozwiązany z wejściem od MATHWORKS wsparcia:

>> tic;doc fwrite;toc 
Elapsed time is 20.301202 seconds. 

>> tic;reader = org.apache.lucene.index.IndexReader.open(fullfile(docroot,'helpsearch')); 
searcher = org.apache.lucene.search.IndexSearcher(reader); 
term = org.apache.lucene.index.Term('relpath','ref/plot.html'); 
query = org.apache.lucene.search.TermQuery(term); 
hits = searcher.search(query); 
fprintf('Found %d results\n', hits.length); searcher.close; reader.close; toc; 
Java exception occurred: 
java.io.IOException: Lock obtain timed out: 
[email protected]:\Users\b\AppData\Local\Temp\lucene-ca3070c312bc20732565936b371a8bd3-  commit.lock 
at 
org.apache.lucene.store.Lock.obtain(Lock.java:56) 
at 
org.apache.lucene.store.Lock$With.run(Lock.java:98) 
at 
org.apache.lucene.index.IndexReader.open(IndexReader.java:141) 
at 
org.apache.lucene.index.IndexReader.open(IndexReader.java:125) 

potem, myśląc, że był problem z pliku tymczasowego zablokowania, zamknąłem Matlab, poszedł do AppData \ Local \ Temp \ i wyczyścił wszystkie pliki tymczasowe.

>> tic; 
reader = org.apache.lucene.index.IndexReader.open(fullfile(docroot,'helpsearch')); 
searcher = org.apache.lucene.search.IndexSearcher(reader); 
term = org.apache.lucene.index.Term('relpath','ref/plot.html'); 
query = org.apache.lucene.search.TermQuery(term); 
hits = searcher.search(query); 
fprintf('Found %d results\n', hits.length); searcher.close; reader.close; toc; 
Found 5 results 
Elapsed time is 0.106868 seconds. 

>> tic;doc fwrite;toc 
Elapsed time is 0.153808 seconds. 

Albo jest to czyszczenie plików tymczasowych lub odniesienie do wewnętrznego klas java org.apache.lucene * że załatwiło sprawę, ale to jest tutaj, teraz doc jest szybko ponownie.

4

Jest kilka rzeczy, które mogą przyczyniać się do tego problemu, ale biorąc pod uwagę dostarczone informacje, trudno powiedzieć dokładnie, co się dzieje.

Gdy system pomocy R2012b zostanie zainicjowany, wykonuje kilka zadań, które czasami mogą wprowadzić zauważalne opóźnienie, związane głównie z określeniem, które produkty MathWorks są dostępne i jak skonfigurowano preferencje pomocy. 10 sekund byłoby niezwykłe, ale istnieje możliwość, że to właśnie powoduje opóźnienie. Jeśli widzisz wydajność po pierwszym użyciu systemu pomocy, ale już nie w tej samej sesji MATLAB, jest to prawdopodobna przyczyna. To zachowanie zostało poprawione w R2013a.

Inne niż zadania inicjujące, wywołanie Java jest stosunkowo prostym wyszukiwaniem z tego samego indeksu wyszukiwania, który jest używany do przeszukiwania dokumentacji. Jeśli zauważysz, że wyszukiwanie dokumentacji w przeglądarce pomocy jest powolne, jest to wskazówka, że ​​problem z wydajnością leży gdzieś w funkcji wyszukiwania systemu pomocy.

W obu przypadkach najlepszym rozwiązaniem jest prawdopodobnie contact MathWorks technical support. Prawdopodobnie możemy przyjrzeć się temu bliżej i ewentualnie wymyślić jakąś poprawkę.

Powiązane problemy