至于背景,我正在Clojure中编写一个Web服务(在这种情况下使用Compojure).我并不担心性能,这似乎足够好,我总是可以解决更多的服务器实例.
即使Clojure实现比相应的Java实现慢2-10倍,我也总是喜欢在原始性能之前使用更干净的代码.
当然,这取决于你在做什么,但我想知道你在Java和Clojure的任何类型的长期服务器解决方案的内存占用情况下是否有任何实际经验?
Dart的性能给我留下了深刻印象,我将一个非常简单的Web应用程序组合在一起,以渲染Dart中的Mandelbrot(使用HTML5画布).这绝不是一个真实的性能测试.该页面将Mandelbrot设置为800x600画布,最大深度为10.000.该应用程序可以在这里看到:http://goo.gl/DLuQp
令我困惑的是:在Dartium中运行时,图像渲染时间约为8.5秒(令人印象深刻).Firefox中的同一页面需要> 15秒.这并不奇怪.
但是在Chrome(版本27.0.1453.93)中运行相同的页面,它不运行Dart但JS版本也在6.7秒内完成,比Dart快?
为什么会这样?
更新:我添加了一个"运行"按钮来重新渲染画布(以验证预热行为).另外我添加了一个只有JS的版本(当然是相同的代码)来检查Dartium中的JS.简而言之:数字和我的问题仍然存在.热身似乎没有效果.在Dartium中,JS版本比Dart版本更快.
关闭问题后更新:仅供记录:在这个特定情况下,将代码移动到并行工作者/隔离器不仅导致显着的性能提升,Dart现在明显地将JS版本置于尘埃落后的因素10.
dart中有一个"crypto"库,如下所示:https: //api.dartlang.org/docs/channels/stable/latest/crypto.html
我想计算客户端上给定字符串的SHA256校验和,可能是这样的:
var sha256 = new SHA256();
sha256.add('message'.codeUnits);
var digest = sha256.close();
var hexString = CryptoUtils.bytesToHex(digest);
assert(hexString ==
'ab530a13e45914982b79f9b7e3fba994cfd1f3fb22f71cea1afbf02b460c6d1d');
Run Code Online (Sandbox Code Playgroud)
但是我甚至无法导入该库以使用SHA256对象...这些都不起作用:
import 'dart:crypto';
import 'crypto';
Run Code Online (Sandbox Code Playgroud)
我在Dart目录中找不到SHA256(我使用的是Dart 1.0.0 STABLE)