2013-03-14 10 views
5

Ich kann nicht meinen Finger darauf legen, warum es das tut, aber seit ein paar Tagen braucht Hilfe viel Zeit zu zeigen. Entweder inline (Auswahl einer Funktion, Auswahl von "Hilfe für") oder durch Verwendung der Befehle doc oder help. Der Befehl doc cmdname dauert ungefähr 10 Sekunden, um das Hilfefenster anzuzeigen. Ich tat, fwrite als Beispiel genommen wird, versuchen profile on;doc fwrite;profile viewer und Graben durch den Kaninchenbau ich auf einer privaten Java Matlab Methode angekommen, die für immer zu nehmen ist:Matlab Hilfe, doc Befehle sehr langsam

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

Elapsed time is 9.993832 seconds. 

Jede Idee, was dieses Problem verursachen könnte? Es geschieht auch im abgesicherten Modus, mit keinem anderen laufenden Programmen als MATLAB. Ich würde eine vollständige Neuinstallation von MATLAB versuchen, aber wenn ich das vermeiden könnte, wäre das großartig.

+2

Welche Matlab-Version verwenden Sie? –

+0

Lass mich raten ... 2012b? – yuk

+0

Ja, 2012b (8.0.0.783 um genau zu sein) – rienafairefr

Antwort

1

Das Problem mit dem Input von MathWorks Unterstützung gelöst wurde:

>> 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) 

Danach war es ein Problem mit einer temporären Datei denkt gesperrt wird, schloss ich \ Matlab, ging in AppData \ Local \ Temp und bereinigt alle temporären Dateien darin.

>> 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. 

Entweder ist es die die temporären Dateien oder den Verweis auf interne Java-Klassen org.apache.lucene * Reinigung, die den Trick tat, aber hier ist es, jetzt doc schnell wieder an ist.

4

Es gibt ein paar Dinge, die zu diesem Problem beitragen können, aber angesichts der Informationen, die Sie zur Verfügung stellen, ist es schwierig, genau zu sagen, was vor sich geht.

Wenn das R2012b-Hilfesystem initialisiert wird, führt es einige Aufgaben aus, die manchmal eine spürbare Verzögerung mit sich bringen können, hauptsächlich im Zusammenhang mit der Entscheidung, welche MathWorks-Produkte verfügbar sind und wie Ihre Hilfepräferenzen eingerichtet sind. 10 Sekunden wären ungewöhnlich, aber es besteht die Möglichkeit, dass dies die Verzögerung verursacht. Wenn Sie feststellen, dass die Leistung bei der ersten Verwendung des Hilfesystems, aber nicht erneut in derselben MATLAB-Sitzung, erreicht wurde, ist dies wahrscheinlich die Ursache. Dieses Verhalten wurde in R2013a verbessert.

Außer den Initialisierungsaufgaben ist der fragliche Java-Aufruf eine relativ einfache Suche gegen den gleichen Suchindex, der für die Suche in der Dokumentation verwendet wird. Wenn Sie feststellen, dass die Suche in der Dokumentation im Hilfebrowser langsam ist, wäre dies ein Hinweis darauf, dass das Leistungsproblem irgendwo in der Suchfunktion des Hilfesystems liegt.

In beiden Fällen ist Ihre beste Wette wahrscheinlich contact MathWorks technical support. Es ist wahrscheinlich, dass wir uns das genauer ansehen und möglicherweise eine Lösung finden können.