优化我的MATLAB代码,我偶然发现了一个关于匿名函数的奇怪问题.
就像在这个线程中我意识到的那样,有时匿名函数的运行速度非常慢.但是对函数的更改很少,它的运行速度与子函数或嵌套函数一样快.
我使用这个(简单的)测试文件来重现Windows 7 64位下Matlab R2010b的行为:
clear all; close all; clc;
% functions
fn1 = @(x) x^2;
fn2 = @(x) double(x^2);
% variables
x = linspace(-100,100,100000);
N = length(x);
%% anonymous function
y = zeros(1,N);
t = tic;
for i=1:N
y(i) = fn1(x(i));
end
tm.anonymous_1 = toc(t);
%% anonymous function (modified)
y = zeros(1,N);
t = tic;
for i=1:N
y(i) = fn2(x(i));
end
tm.anonymous_2 = toc(t);
%% print
tm
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:
tm =
anonymous_1: 1.0605
anonymous_2: 0.1217
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,第一种方法慢了大约10倍.我不知道是什么触发了这种加速/减速.我尝试了不同的东西,得到了几乎相同(快速)的时间:
fn2 …Run Code Online (Sandbox Code Playgroud) 似乎只有casbah我们可以在scala中使用,但我希望scala有一个类似于orm的库,比如morphiajava或者其他东西.
有没有?我不想morphia在scala中使用因为我必须将java集合转换为scala
UPDATE
我已经尝试了其中一些,但仍然找不到合适的.有些人很难让scala新手入手.
最后
最后,我选择了mongo-scala-driver,它很棒.感谢大家.
我正在尝试实现类似Facebook的实时通知系统,以便在有人将其添加为朋友时通知用户,例如他们的帖子或帖子回复他们的评论.
所有的数据库和PHP部分都已完成,但我无法弄清楚如何像Facebook那样实现它.
每当有人喜欢/评论Facebook上的帖子时,屏幕左下角会出现淡蓝色框.只要有人点击按钮或在Facebook上发表评论,就会发生这种情况.我想知道我应该怎么做来实现这一点.
使用YUI或任何JavaScript框架,我可以在n几秒钟后查询数据库表以检查通知.这种方法太重了.
我想知道是否有任何服务器端模块或脚本可以完成,以便每当我的数据库表中有新的通知条目时,服务器将告诉该特定客户端.这样就可以完全避免从客户端到服务器的不必要的请求调用,并且系统可以有效地为一次有超过50,000个用户的网站工作.
我怎样才能做到这一点?
我在J2SE下使用log4j.我已将其配置为使用邮件程序来处理某种类型的日志事件.当logger.error触发时,我得到以下异常:
java.lang.Error: Can't find java.home ??
at sun.net.NetProperties.loadDefaultProperties(NetProperties.java:45)
...
at org.apache.log4j.net.SMTPAppender.sendBuffer(SMTPAppender.java:416)
Run Code Online (Sandbox Code Playgroud)
有没有人遇到过这个?我也包含了所需的mail.jar库.
任何帮助表示赞赏.谢谢,克里斯
我的类直接从链接下载文件:
MyClass{
function download($link){
......
$ch = curl_init($link);
curl_setopt($ch, CURLOPT_FILE, $File->handle);
curl_setopt($ch,CURLOPT_WRITEFUNCTION , array($this,'__writeFunction'));
curl_exec($ch);
curl_close($ch);
$File->close();
......
}
function __writeFunction($curl, $data) {
return strlen($data);
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道如何在下载文件时使用 CRULOPT_WRITEFUNCTION。如果我删除行,则上面的代码:
curl_setopt($ch,CURLOPT_WRITEFUNCTION , array($this,'__writeFunction'));
然后它会运行良好,我可以下载该文件。但是如果我使用 CURL_WRITEFUNCTION 选项,我将无法下载文件。
我有一个内置在Xcode4中的iOS 4.3 iPhone应用程序,我通过Application Loader应用程序提交.我一直收到这个错误:
在顶级应用包装器下找不到Info.plist中指定的图标:iTunesArtwork
我有以下几套:
据我所知,上面的内容与iTunesArtwork完全一样.我错过了哪些想法?
我想解析一个html页面来获取一些数据.首先,我使用SgmlReader将其转换为XML文档.然后,我将结果加载到XMLDocument,然后导航到XPath:
//contains html document
var loadedFile = LoadWebPage();
...
Sgml.SgmlReader sgmlReader = new Sgml.SgmlReader();
sgmlReader.DocType = "HTML";
sgmlReader.WhitespaceHandling = WhitespaceHandling.All;
sgmlReader.CaseFolding = Sgml.CaseFolding.ToLower;
sgmlReader.InputStream = new StringReader(loadedFile);
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.XmlResolver = null;
doc.Load(sgmlReader);
Run Code Online (Sandbox Code Playgroud)
这个代码适用于大多数情况,除了在这个网站上 - www.arrow.com(尝试搜索像OP295GS这样的东西).我可以使用以下XPath获取包含结果的表:
var node = doc.SelectSingleNode(".//*[@id='results-table']");
Run Code Online (Sandbox Code Playgroud)
这给了我一个带有几个子节点的节点:
[0] {Element, Name="thead"}
[1] {Element, Name="tbody"}
[2] {Element, Name="tbody"}
FirstChild {Element, Name="thead"}
Run Code Online (Sandbox Code Playgroud)
好吧,让我们尝试使用XPath获取一些子节点.但这不起作用:
var childNodes = node.SelectNodes("tbody");
//childnodes.Count = 0
Run Code Online (Sandbox Code Playgroud)
这也是:
var childNode = node.SelectSingleNode("thead");
// childNode = null
Run Code Online (Sandbox Code Playgroud)
甚至这个: …
我正处于设计小部件的初始阶段,并提出了一个更有利的设计问题 - 将其作为IFrame或使用其他技术.
有没有人在嵌入其他网站之前构建小部件?什么是最好的设计/建筑师?有什么好的做法吗?
谢谢,亚历克斯
我创建了一个新的存储库,然后运行了git add -A.然后我注意到有一个文件夹包含大约100个不应该包含的文件,因此我将其添加到.gitignore.
我现在如何清除暂存区域,以便我可以add再次考虑更新后的所有文件.gitignore?
我有一个包含一堆单词的txt文件,每行一个.我需要读取这个文件,并把每个单词的列表,然后用户就可以修改此列表编辑完成后,程序会写一个新的文件修改的列表.
因为它是c ++的对象,我将有两个类,一个用于读/写文件,另一个用于编辑/混淆列表和用户.
考虑到这种方法,这是我在第一节课中的阅读功能:
bool FileMgr::readToList(list<string> &l)
{
if(!input.is_open())
return false;
string line;
while(!input.eof())
{
getline(input, line);
l.push_back(line);
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
请记住:输入是在构造函数中打开的.问题:是否有一种不那么多余的方法可以从istream中获取该死的线并将其推回l?(中间没有'字符串').除了问题,这个功能似乎正常.
现在输出功能:
bool FileMgr::writeFromList(list<string>::iterator begin, list<string>::iterator end)
{
ofstream output;
output.open("output.txt");
while(begin != end)
{
output << *begin << "\n";
begin++;
}
output.close();
return true;
}
Run Code Online (Sandbox Code Playgroud)
这是我主要的一部分:
FileMgr file;
list<string> words;
file.readToList(words);
cout << words.front() << words.back();
list<string>::iterator begin = words.begin();
list<string>::iterator end = words.end();
file.writeFromList(begin, end);
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助,这两个功能现在都有效.现在关于样式,这是实现这两个功能的好方法吗?getline(输入,线)部分我真的不喜欢,任何人都有更好的主意?
php ×3
.net ×1
c# ×1
c++ ×1
coding-style ×1
curl ×1
email ×1
facebook ×1
file-io ×1
fstream ×1
git ×1
git-add ×1
gitignore ×1
html-parsing ×1
iframe ×1
ios ×1
ios4 ×1
iphone ×1
iterator ×1
jakarta-mail ×1
java ×1
javascript ×1
log4j ×1
matlab ×1
mongodb ×1
morphia ×1
objective-c ×1
performance ×1
scala ×1
widget ×1
xcode4 ×1
xml ×1
yui ×1