urlread-function R2012b以来非常缓慢——为什么?
2视图(30天)
显示旧的评论
你好,
我用一小块代码读出信息从大约100个网站使用
urlread
在其最简单的形式:
为数= 1:元素
html_str = urlread ([“http://www.website.com/page”num2str(计数)]);
结束
昨天我改变了我的Matlab-version R2011a R2012b和略震惊。与旧版本循环需要大约20 - 30秒。新的需要将近5分钟!
我的研究采石场,Mathworks扩大了urlread-function 3额外的参数,把一些旧的。
http://www.mathworks.de/de/help/matlab/release-notes.html
但我不使用任何这些参数,只有赤裸裸的函数。我试着减少手动的“超时”0.1,但是没有影响。
有什么想法,什么原因导致失速,首先我可以拿回我的表现如何?非常感谢你的帮助!
0评论
接受的答案
1月
2012年11月11日
为什么你认为这个问题是由Matlab ?你有老Matlab仍然安装吗?如果是这样,请检查如果旧版本今天也慢。
5个评论
安德烈亚斯•戈斯
2012年11月13日
看来你找到了一个解决方案,你可以分享帮助吗?我发现Wni8支持。金宝app似乎qualiified回来:
//www.tatmou.com/金宝appsupport/sysreq/current_release/
更多的答案(2)
克莱门斯
2013年11月28日
约翰Hedengren
2013年11月8日
我也注意到这种损失速度,斯文提到我们的一些实验室电脑上。我们运行2010 b和2012 b。相同的代码需要2 - 3秒2010 b和2012 b / 5分钟我们自然地使用2010 b。APMonitor我们使用web服务体系结构的优化工具箱,所以有些用户切换到APM Python的性能降低。我最近尝试的修改版本urlread只有基本的函数调用(见下文)。似乎挂当它试图得到一个来自服务器的响应。
inputStream = urlConnect.getInputStream;
函数输出= urlread_apm (str)
试一试
如果usejava (jvm的),
进口com.mathworks.mlwidgets.io.InterruptibleStreamCopier;
%使用Java如果可用
url = java.net.URL (str);
urlConnect = url.openConnection;
超时= 1000000000;
方法=“得到”;
urlConnect.setRequestMethod(上(方法));
urlConnect.setReadTimeout(超时);
urlConnect.setDoOutput(真正的);
outputStream = urlConnect.getOutputStream;
outputStream.close;
试一试
inputStream = urlConnect.getInputStream;
好= true;
抓我
inputStream = urlConnect.getErrorStream;
好= false;
如果isempty (inputStream)
味精= ME.message;
我= strfind(味精,char (10 9 [13]));
如果~ isempty(我)
味精,味精(1:(1)1);
结束
错误(味精)
结束
结束
byteArrayOutputStream = java.io.ByteArrayOutputStream;
isc = InterruptibleStreamCopier.getInterruptibleStreamCopier;
isc.copyStream (inputStream, byteArrayOutputStream);
inputStream.close;
byteArrayOutputStream.close;
输出= char(定型(byteArrayOutputStream.toByteArray ',“uint8”));
% =定型(byteArrayOutputStream.toByteArray输出”、“uint8”);
其他的
% urlread R2012a后有时慢
%使用只有Java是不可用的
输出= urlread (url);
结束
抓犯错
输出= urlread (url);
结束
结束