Questions tagged «spidermonkey»

21
将JavaScript引擎嵌入到.NET中
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 2年前关闭。 改善这个问题 只是想知道是否有人尝试将任何js引擎嵌入并实际集成到.net环境中。我能找到和实际使用(一后LOT艰辛和努力的,因为它是非常过时的,不完全结束)SpiderMonkey的-的dotnet项目。有人在这方面有经验吗?像SquirrelFish,V8 ..这样的引擎。 并不是说我对Mozilla的Spidermonkey不满意(将其用于ASP.NET核心应用程序中用于自定义组件的类似Rails的微型框架),但我仍然很乐意进一步探索这些选项。命令行解决方案不是我所需要的,除了CLR之外,我不能依靠任何其他东西,我需要从JavaScript / C#对象调用方法。 // c# class public class A { public string Hello(string msg) { return msg + " whatewer"; } } // js snippet var a = new A(); console.log(a.Hello('Call me')); // i have a console.log implemented, don't worry, it's not …

4
如何在javascript中获取控制台输入?
我目前正在使用Spidermonkey运行我的JavaScript代码。我想知道是否有一个类似于Python那样从控制台获取输入的函数: var = raw_input() 或在C ++中: std::cin >> var; 我环顾四周,到目前为止,我发现的所有内容都是如何使用hint()和Confirm()函数从浏览器获取输入。

1
编写高性能的Javascript代码而无需优化
当使用对大型数值数组(例如线性代数程序包,对整数或浮点数进行操作)的Javascript编写对性能敏感的代码时,总是希望JIT尽可能提供帮助。大概意味着: 我们始终希望数组是压缩的SMI(小整数)或压缩的Double,这取决于我们是在进行整数还是浮点计算。 我们始终希望将相同类型的事物传递给函数,以使它们不会被标记为“大形”或未优化。例如,我们始终希望同时调用vec.add(x, y)这两个x并y打包SMI数组,或者同时打包两个Double数组。 我们希望尽可能内联函数。 当一个人偏离这些情况时,会突然而突然地降低性能。出于各种无害的原因,可能会发生这种情况: 您可以通过看似无害的操作将压缩的SMI数组转换为压缩的Double数组,例如的等效项myArray.map(x => -x)。实际上,这是“最佳”的坏情况,因为压缩Double数组仍然非常快。 您可以将打包的数组变成通用的盒装数组,例如通过将数组映射到(意外地)返回null或的函数上undefined。这种情况很容易避免。 您可能会取消对整个函数的优化,例如vec.add()通过传递太多类型的事物并将其变为大形。如果您想进行“泛型编程”,vec.add()则可能会发生这种情况,这种情况在您对类型不十分小心的情况下使用(这样会看到很多类型),并且在想要最大程度地提高性能的情况下也可以使用(例如,它只能收到盒装双打)。 我的问题更多是一个软问题,关于如何根据上述考虑编写高性能的Javascript代码,同时又保持代码的美观和可读性。一些特定的子问题,以便您了解我的目标是: 在打包SMI阵列的世界中,例如,在编程方面有一些准则吗? 是否可以使用Javascript进行通用的高性能编程,而无需使用诸如宏系统之类的工具将其内联vec.add()到callsite中? 鉴于宏调用站点和优化问题,如何将高性能代码模块化到库中?例如,如果我愉快地A高速使用Linear Algebra程序包,然后导入B依赖的程序包A,但B使用其他类型调用该程序包,然后对其进行优化,那么突然(无需更改代码)我的代码运行速度就会变慢。 是否有任何易于使用的良好测量工具来检查Javascript引擎在内部对类型进行的操作?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.