2013-03-14 12 views
5

Parmağımı neden bunun üzerine yaptığını gösteremiyorum, ancak birkaç günlüğünden beri gösterilmesi çok zaman alıyor. Satır içi (bir işlevin seçilmesi, "yardımın seçilmesi") veya doc veya help komutları kullanılarak. Yardım penceresini göstermek için doc cmdname komutu yaklaşık 10 saniye sürer. Bu soruna neden ne olabilirMatlab yardımı, doc komutları çok yavaş

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

Elapsed time is 9.993832 seconds. 

Herhangi fikri: Sonsuza alıyor Ben özel bir java matlab yöntemine geldi tavşan deliğinden, profile on;doc fwrite;profile viewer deneyin örnek olarak fwrite alıp kazma yaptım? Ayrıca MATLAB'den başka çalışan programlarla güvenli modda olur. MATLAB'ın tam bir yeniden yüklemesini deneyebilirim, ancak bundan kaçınabilseydim, bu harika olurdu.

+2

Hangi Matlab sürümünü çalıştırıyorsunuz? –

+0

Tahmin edeyim ... 2012b? – yuk

+0

Yep, 2012b (8.0.0.783 tam olarak) – rienafairefr

cevap

1

sorun MathWorks destekten girişi ile çözülmüştür: kilitli bir geçici dosyada bir sorun olduğunu düşünerek Bundan sonra

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

, ben, Matlab kapalı AppData \ Local \ Temp \ girdi ve Tüm geçici dosyaları temizlediniz.

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

Ya geçici dosyaları veya hile yaptı iç java sınıfları org.apache.lucene * referansı temizlik var, ama burada şimdi doc hızlı yine vardır.

4

Bu soruna katkıda bulunabilecek birkaç şey var, ancak sağladığınız bilgiler ışığında neler olup bittiğini söylemek zor.

R2012b yardım sistemi başlatıldığında, çoğu zaman hangi MathWorks ürünlerinin var olduğunu ve yardım tercihlerinizi nasıl ayarladığınızı belirlemekle ilgili, bazen fark edilebilir bir gecikme ortaya çıkarabilen birkaç görev yapar. 10 saniye olağandışı olurdu, ancak gecikmeye neden olan şey budur. Performans sistemini ilk kez kullandığınızda, ancak yine aynı MATLAB oturumunda değil iseniz, bunun muhtemel nedeni budur. Bu davranış, R2013a'da geliştirildi.

Başlatma görevlerinden başka, söz konusu Java çağrısı, belgeleri aramak için kullanılan aynı arama dizinine karşı nispeten basit bir aramadır. Yardım tarayıcısında dokümantasyonun aranmasının yavaş olduğunu fark ederseniz, bu, performans sorununun yardım sisteminin arama işlevinin bir bölümünde yer aldığına dair bir ipucu olur.

Her iki durumda da, en iyi bahsiniz contact MathWorks technical support olabilir. Bu konuya daha yakından bakabiliriz ve muhtemelen bir çeşit düzeltmeyle karşılaşabiliriz.