我想更好地了解飞镖对性能的影响.在飞镖网站上,他们的基准测试显示编译为Javascript的Dart代码比Javascript更快.这怎么可能?

我理解Dart VM如何比v8快,但我没有得到的是dart2js生成的javascript如何比普通的旧javascript更快,当两者都在相同的环境中运行时,v8.
我正在研究一个基于html的计算器,我想渲染一个表达式,然后对它进行评估,所有这一切都必须在Javascript中完成.我更喜欢用LaTeX编写表达式,并且可以交互式编辑渲染表达式,但其他语言可以工作.
我之前尝试过的是使用MathQuill以交互方式呈现表达式,然后使用MathJS对其进行评估.然而,这在某种程度上起作用,因为两个包的设计目标不同(MathQuill呈现LaTeX,而MathJS具有自定义数学语法),它不能很好地工作(例如,如果用户键入\frac{5}{17*x}并假定它是正确的语法,然后评估它并从MathJS获取错误).
目前,我看到三种方法:
做这个的麻烦方法是什么?
更新1:在查看altJS提供的替代语言列表后,我认为我可以使用Python,Ruby或Basic作为用户输入的语言.如果我这样做,它将为渲染它开辟如此多的可能性(从技术上讲,它不是"渲染",而只是考虑那里有多少语法荧光笔).但是,我不希望用户访问这些语言的更高级元素,因为它会给我的用户增加混乱,也可能不安全(如使用eval).我只希望用户能够使用数学运算,变量(只有我指定的那些,也可以是用户创建的)和函数(只有我指定的那些,他们可以,也是用户定义的).有没有办法限制可以使用的语言子集?
更新2:我看了看周围的一些altJS页的详细,并发现几乎所有的语言被设计成编译语言XYZ为JavaScript,然后在网页上运行JavaScript的,而不是运行语言XYZ 在页面上.我没有看过每一个,但大多数看起来都像这样.其他人,比如Brython,似乎被设计为在浏览器中运行语言XYZ,但作为JavaScript的替代/补充,而不是作为用户的输入语言.是否有一些解决方法,所以我可以使用这些方法作为输入?
更新3:感谢@SpaceDog获取该信息,并指出我没有具体说明用户应该能够实现的目标.所以,这是我想要实现的功能:
除最后一项外,LaTeXCalc似乎满足所有这些要求.此外,它似乎不是在Javascript中.
这让我想到了另一个我想过的想法:使用类似MathJax的东西进行演示,然后使用Wolfram Alpha API来实际处理计算.其好处是它可以为输入和输出提供更多高级选项.但是,应用程序将变得无用(为什么不使用wolframalpha.com,如果计算器实际上只是一个克隆?),它需要花钱,而且应用程序无法脱机工作(它是一个用HTML编写的桌面应用程序/ CSS/JS).对此的想法?
我想在客户端JavaScript代码中按屏幕宽度对设备进行分类
所有设备都适合单手(7"以下)到移动类别
将其他设备视为桌面设备
后备:将不支持必要API的设备视为移动设备
题
Firefox支持是可选的 - 如果它们已经具有兼容的API.
请注意,这是关于物理尺寸,而不是像素尺寸.
调用window.navigator.getGamepads()返回有效的Gamepad对象列表,但轴和按钮属性始终是null.
索引和ID属性都是有效的.我错过了什么或者它还没有工作吗?
http://api.dartlang.org/docs/bleeding_edge/dart_html/Gamepad.html
我有这个相当流行的代码:
jQuery(document).ready(function($) {
$(".scroll").click(function(event){
event.preventDefault();
$('html,body').animate({scrollTop:$(this.hash).offset().top}, 500);
});
});
Run Code Online (Sandbox Code Playgroud)
并在HTML中:
<a href="#scrollThere">Click</a>
Run Code Online (Sandbox Code Playgroud)
去吧
<div class="scroll" id="scrollThere"></div>
Run Code Online (Sandbox Code Playgroud)
但是在一个页面网站上,当div处于不同的高度时,即滚动必须使用不同的长度 - 滚动有时要快得多,有时甚至非常慢.什么样的代码会使te滚动始终是时间=速度*距离,而不是时间=以毫秒为单位或者换句话说,我怎样才能达到始终相同的速度?
我正在研究一个用以下代码计算pi的Leibniz近似的项目:
def pi(precision):
sign = True
ret = 0
for i in range(1,precision+1):
odd = 2 * i - 1
if sign:
ret += 1.0 / odd
else:
ret -= 1.0 / odd
sign = not sign
return ret
Run Code Online (Sandbox Code Playgroud)
但是,输出值始终为12位数.如何提高计算的精度(例如更多位数)?Python是否支持更精确的浮点,还是必须使用一些外部库?
我正在绘制这个饼图:

使用此代码:
dxPieChart: {
dataSource: dsAlarmsBySeverity,
size: {
width: 275,
height: 150
},
palette: ['#FFFF00', '#FF9900', '#CC3300', '#33CC33', '#0066FF'],
legend: {
backgroundColor: '#FCFCFC',
border: {
color: 'black',
width: .5,
visible: true,
cornerRadius: 10
},
verticalAlign: 'middle'
},
series: [{
type: 'doughnut',
argumentField: 'severity',
valueField: 'count',
label: {
visible: false,
font: {
size: 16
},
connector: {
visible: true,
width: 0.5
},
position: 'columns',
customizeText: function(arg) {
return arg.argumentText
}
},
border: {
color: 'black',
width: .5,
visible: true
},
hoverStyle: …Run Code Online (Sandbox Code Playgroud) 在Rust中,看起来你基本上可以放任何东西.特征,实现块,函数,静态变量......
例如,这编译:
fn main() {
trait Foo {
fn foo();
}
impl Foo for f64 {
fn foo() {}
}
struct MyStruct;
enum RustIsCool {
MyStruct,
};
fn bar() {
trait Baz {
fn baz();
}
impl Baz for f64 {
fn baz() {}
}
}
static x: f64 = 10.0;
println!("This compiles!");
}
Run Code Online (Sandbox Code Playgroud)
如您所见,您甚至可以将这些内容嵌套在其他块中.
显然,从风格的角度来看这样做很糟糕; 它很丑陋,难以重构,并且使代码重用更加困难.
但我很好奇:这样做有任何性能开销吗?或者Rust编译器是否优化了差异?
在Dart中有类似于匿名闭包的东西吗?或者OOP不需要这个功能?有解决方法吗?
谢谢.
我正在使用Python中的n维数组,并且我想根据其坐标查找给定单元的“邻居”(相邻单元)。问题是我事先不知道尺寸数。
我试图numpy.roll按照此答案的建议使用,但似乎不清楚如何将此方法应用于多个维度。
请指出正确的方向。
我有一个使用结构显示在页面上的项目列表。如果客户没有选择这些项目,我要检查结构是否为空。
这是我的代码:
shopItems.shopItemsStruct = {};
Run Code Online (Sandbox Code Playgroud)
因此,console.log(shopItems.shopItemsStruct)当我不选择任何项目时,它会向我显示Object { }。如何签入if语句(即,是否未选择商店商品)?
谢谢。
javascript ×6
dart ×3
performance ×2
python ×2
arrays ×1
chart.js ×1
closures ×1
css3 ×1
dart2js ×1
distance ×1
html5-canvas ×1
import ×1
interpreter ×1
jquery ×1
latex ×1
numpy ×1
optimization ×1
renderer ×1
rust ×1
scipy ×1
time ×1
vala ×1
webkit ×1