加快此功能的最佳简单方法是什么?根据Criterium,Java中的等效代码快了近50倍。
我敢打赌,如果我使用Java Array并减少装箱数量,这将大有帮助,但我想我会先在这里发布,看看是否有我犯的任何基本错误,可以很容易地解决。注意,我已经为Clojure指出了(double ...),它极大地提高了性能,但仍然没有Java那样。我还首先使用(double-array ...)而不是在函数内部使用(vec ...)转换了seq,这也提高了性能,但是再次,与Java没什么不同。
(defn cosine-similarity [ma mb]
(let [va (vec ma), vb (vec mb)]
(loop [p (double 0)
na (double 0)
nb (double 0)
i (dec (count va))]
(if (neg? i)
(/ p (* (Math/sqrt na) (Math/sqrt nb)))
(let [a (double (va i))
b (double (vb i))]
(recur (+ p (* a b))
(+ na (* a a))
(+ nb (* b b))
(dec i)))))))
Run Code Online (Sandbox Code Playgroud)
请注意,ma和mb都是序列,每个序列包含200个Double。在Java版本中,它们作为double [] args传递。
鉴于这样的对象:
var obj = {
first:{
second:{
third:'hi there'
}
}
};
Run Code Online (Sandbox Code Playgroud)
像这样的关键"first.second.third"
如何获取嵌套对象的值"hi there"?
我想也许Array.reduce函数可能会有所帮助,但不确定.
获得以下内容的最佳方式是什么:
从今天的日期开始,返回一个可枚举的以下内容:
7月1日7月15日8月1日8月15日9月1日9月15日10月1日10月1日
应该考虑到如果它是年底的事情,那么它将在12月15日1月1日.
我需要一个具有以下功能的RoleProvider:
动态分配角色到任务
认证/授权IPrincipals基于他们有权访问的系统中的动态分配任务
报告显示当前登录的用户以及其他常见用法统计信息.
我很确定我将不得不自己动手,但我想确保我不会错过任何OSS甚至是MS.
我也在使用ASP.NET MVC,所以我的基本计划是编写一个自定义属性,如:[Authorize(Task=Tasks.DeleteClient)]
将它放在需要授权的方法上.我将根据用户在数据库中配置的任何设置,根据角色授权任务,而不是根据角色进行授权.
思考?
asp.net ×1
asp.net-mvc ×1
c# ×1
clojure ×1
java ×1
javascript ×1
object ×1
performance ×1
roleprovider ×1