2013-03-14 12 views
5

Non riesco a capire perché lo stia facendo, ma da qualche giorno l'aiuto richiede molto tempo per essere mostrato. In linea (selezionando una funzione, selezionando "aiuto per") o usando i comandi doc o help. Il comando doc cmdname impiega circa 10 secondi per mostrare la finestra della guida. L'ho fatto, prendendo fwrite come esempio, provare profile on;doc fwrite;profile viewer e scavando attraverso la tana del coniglio sono arrivato su un metodo di MATLAB java privato che sta prendendo sempre:Aiuto Matlab, doc comandi molto lenti

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

Elapsed time is 9.993832 seconds. 

Qualsiasi idea di che cosa potrebbe causare questo problema? Succede anche in modalità sicura, senza altri programmi in esecuzione di MATLAB. Proverei una reinstallazione completa di MATLAB, ma se potessi evitare che sarebbe grandioso.

+2

Quale versione di Matlab esegui? –

+0

Fammi indovinare ... 2012b? – yuk

+0

Sì, 2012b (8.0.0.783 per la precisione) – rienafairefr

risposta

1

Il problema è stato risolto con il contributo di MathWorks supporto:

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

Dopo di che, pensando che fosse un problema con un file temporaneo di essere bloccato, ho chiuso Matlab, andato in AppData \ Local \ Temp \ e pulito tutti i file temporanei in esso.

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

O è la pulizia dei file temporanei o il riferimento a classi Java org.apache.lucene interna * che ha fatto il trucco, ma qui è, ora doc è veloce di nuovo.

4

Ci sono un paio di cose che potrebbero contribuire a questo problema, ma date le informazioni fornite è difficile dire esattamente cosa sta succedendo.

Quando il sistema di guida R2012b viene inizializzato, esegue alcune attività che a volte possono introdurre un ritardo notevole, principalmente relative alla determinazione dei prodotti MathWorks disponibili e al modo in cui sono configurate le preferenze di guida. 10 secondi sarebbero inusuali, ma c'è la possibilità che questo sia ciò che sta causando il ritardo. Se stai riscontrando un calo delle prestazioni al primo utilizzo del sistema di guida, ma non di nuovo nella stessa sessione MATLAB, questa è la causa probabile. Questo comportamento è migliorato in R2013a.

Oltre alle attività di inizializzazione, la chiamata Java in questione è una ricerca relativamente semplice rispetto allo stesso indice di ricerca utilizzato per la ricerca della documentazione. Se ti accorgi che la ricerca della documentazione nel browser della guida è lenta, sarebbe un suggerimento che il problema di prestazioni si trova da qualche parte all'interno della funzionalità di ricerca del sistema di guida.

In entrambi i casi, la soluzione migliore è probabilmente a contact MathWorks technical support. È probabile che possiamo dare un'occhiata più da vicino a questo ed eventualmente trovare una sorta di correzione.

Problemi correlati