Tag: c#

Node.js与C ++的math

我必须编写一个服务器程序来实现一些模糊逻辑,我select在Node.js中编写它来利用它的事件方向。 我必须处理困难的math计算问题,我不知道获得性能的最佳方法是什么: 全部写入Node.js,并使用V8引擎的强大function完成math任务。 用C ++编写一个模块来实现所有的math函数,并从Node中调用它。 任何人都有这两种平台上的计算types的经验?

节点类似numpy的包

在我开发Python的几年中,如果你设法重写通过你的ndarray执行代码并执行某些操作的代码,那么一旦在整个数组上工作的numpy函数,我总是惊讶于事情会变得多快。 最近我越来越多地转向节点,我正在寻找类似的东西。 到目前为止,我已经发现了一些东西,没有一个看起来很有希望: scikit-node ,在Python中运行scikit-learn,并与节点连接。 我没有尝试过,但我不期望它能给我带来我想要的最高速度。 有一些相当老,更新的JavaScriptmatrix库( sylvester , gl-matrix ,…)。 除了不确定它们是否适用于大于4×4的matrix(这在3D渲染中最有用),它们似乎是原生的JavaScript(有些不确定这些是否使用了webGL加速)。 伟大的浏览器,而不是节点上。 据我所知,npms可以用C ++编写,所以我想知道为什么没有节点的类似numpy的库。 对社会来说,还有没有足够的兴趣,需要这种权力? 有没有希望ES6function(列表parsing)将允许JavaScript编译器自动将本机JS代码vector化到C ++的速度? 我可能错过了别的? 编辑 ,以回应票选:注意,我不是要求“什么是最好的包xyz做”。 我只是想知道是否有技术上的原因,在节点上没有包裹,社会原因,没有理由,只有一个我错过了一个包。 也许是为了避免太多自以为是的批评,我想知道:我有大约10000个100×100的matrix。 什么是最好的(*更正,一个合理的快速)的方式来加在一起? Edit2经过更多的挖掘,原来我正在search错误的东西。 谷歌的“node.js科学计算”,并有一些非常有趣的笔记链接: https://cs.stackexchange.com/questions/1693/a-faster-leaner-javascript-for-scientific-computing-what-features-should-i-kee http://www.quora.com/Can-Node-js-handle-numerical-computation-the-same-way-that-languages-like-R-or-Julia-can Javascript和科学处理? 基本上就我所知,目前还没有人打扰。 而且,由于js TypedArrays中有一些重大的遗漏(比如64位整数),使用NPMs可能很难增加良好的支持,而且不会破坏引擎本身 – 这是会导致失败的。 再次,我没有进一步研究这最后的声明。

为什么Node.JS中的V8比我的本地C ++插件更快?

为什么我的C ++插件中的Google V8 JavaScript引擎的工作速度比Node.JS慢得多? 我试着编写一些简单的代码来生成JavaScript中的素数,并通过C ++插件在V8中直接在Node.JS中运行它。 我感到非常震惊,因为它们都应该使用相同的JavaScript引擎,并且都执行相同的代码(时间以毫秒为单位)。 V8 in Node.JS: 495517 V8 in Node.JS C++ Addon: 623598 这里是运行相同的JavaScript代码的JavaScript模块和C ++插件的源代码(我认为问题不在互操作中,因为时间的测量直接在JS中工作): index.js : var jsInNodeJsPrimeGeneratorBenchmark = require("./javascript.js"); var jsInNativePrimeGeneratorBenchmark = require("./native"); console.log("V8 in Node.JS: ", jsInNodeJsPrimeGeneratorBenchmark.primeGeneratorBenchmark()); console.log("V8 in Node.JS C++ Addon: ", jsInNativePrimeGeneratorBenchmark.primeGeneratorBenchmark()); javascript.js : function primeGeneratorBenchmark() { var result, primeNumberCounter, i, j, isPrime, start, end; i […]

ASP.NET Web Api与Node.js

我最近已经开始将一个我正在使用的Web平台连接到主要用C#编写的其他相当复杂的系统上。 我的大部分经验是在PHP和JavaScript的Web开发中。我也有在WCF编写Web服务的经验。 令人遗憾的是,在为我的PHP Web平台编写WCF服务时遇到了很多困难,开发缓慢,configuration非常(非常)复杂,为了在JSON中做好响应并使用RESTful和更多。 当然,我开始环顾其他技术,特别是引起了我的注意,Node.js对我来说可能是完美的,因为我在JavaScript中有很多的经验,这样我就不再需要我的Windows服务器了。 我的另一个select当然是继续用C#编写服务,而是改用ASP.NET Web API。 交换机可能比从WCF到Node.js要容易得多。 有关于此事的任何想法或build议? 有没有人在Node.js中编写Web服务的经验,可以指向一个很好的教程方向? 还是我的方式,我不应该使用Node.js的Web服务呢?

从v8 :: Arguments转换为C ++types

我正在用C ++创buildNode.js模块,但我难住了v8 :: Arguments类。 比方说,我有一个JavaScript类发送电子邮件,它有一个这样的签名方法: Mailer::sendEmail(Array recipients, String sender, String message); 这将被称为是这样的: mailer.sendEmail(["joe@gmail.com", "sally@gmail.com"], "fred@gmail.com", "Hi there"); 现在在C ++的土地,我有一个类签名function: SendEmail(const v8::Arguments& args) 这是支持我的梅勒:: sendEmail方法在Javascript土地。 SendEmail函数将创build我的Emailer类的新实例,它本身具有带有此签名的类函数: send(std::list<std::string> recipients, std::string from, std::string message) 而这就是我迷失的地方。 我不知道如何从args中取值,并将它们转换成常规的C ++types,所以我可以将值传递给我的发送函数。 据我所知,传递给Mailer :: sendEmail的3个值将在args [0] , args [1]和args [2]中可用。 我甚至明白,我可以做一些types检查, if (!args[0]->IsArray()) ,但实际上转换args [0]为std::list<std::string>是我不知道如何去做。 编辑:我发现这样做的一个hackish的方式,但我仍然认为V8有一些内置的方法来处理这个更清洁的方式。 static Handle<Value> SendEmail(const Arguments& args) { HandleScope […]

如何将Node.js解释器embedded到C / C ++中?

我想在我的C / C ++应用程序中使用Node.js脚本。 有人build议我从v8开始,libev和libeio; 但它意味着从头重写Node.js。 那么,是否有可能将Node.jsembedded到C或C ++中?

为node.js编写C ++模块

任何人都可以给我一个非常小的框架如何在node.js中实现c ++模块的例子吗?

node.js与ASP.NET Core性能testing的意外结果

我正在用node.js和asp.net-core编写的两个(有点)hello世界项目做一个快速压力testing。 他们都在生产模式下运行,没有logging器连接到他们。 结果是惊人的! 即使在做了一些额外的工作之后,ASP.NET核心的performance也优于node.js应用,而node.js应用只是渲染一个视图。 应用程序1: http://localhost:3000/nodejs node.js 使用 :node.js,express和vash渲染引擎。 这个端点的代码是 router.get('/', function(req, res, next) { var vm = { title: 'Express', time: new Date() } res.render('index', vm); }); 正如你所看到的,除了通过timevariables发送当前date到视图之外,它什么都不做。 应用程序2: http://localhost:5000/aspnet-core asp.net core 使用 :ASP.NET核心,默认模板定位dnxcore50 然而,这个应用程序不只是呈现一个页面上的date。 它生成5段各种随机文本。 理论上这应该比nodejs应用稍微重一点。 这是渲染这个页面的动作方法 [ResponseCache(Location = ResponseCacheLocation.None, NoStore = true)] [Route("aspnet-core")] public IActionResult Index() { var sb = new StringBuilder(1024); […]