草庐IT

c# - Autofac - 自动注册错误 : No constructors can be found with 'Public binding flags'

这是我的Global.asax.cspublicvoidRegisterContainersUsingAutofac(){//http://elegantcode.com/2009/01/07/ioc-libraries-compared///http://www.codeproject.com/Articles/25380/Dependency-Injection-with-Autofac//https://code.google.com/p/autofac///http://api.autofac.org/varbuilder=newContainerBuilder();build

javascript - 如何将V8编译的javascript转成EXE?

我知道谷歌的v8将javascript编译成本地机器(如果我理解正确的话是二进制)代码。有没有办法获取输出并将其转换为exe? 最佳答案 我不认为您可以使用V8直接将一段JavaScript转换为可执行文件,但您可以制作一个应用程序,将V8引擎与JavaScript捆绑在一起并作为独立运行。您可以在itsprojectpage上找到有关V8的所有信息.另请注意,JavaScript不能完全编译,因为它是一种动态语言。使用V8,它是JIT编译的(例如.NET)。但是仍然可以将它变成一个独立的可执行文件(例如.NET)。如果您想开发使用

Javascript 正则表达式挂起(使用 v8)

我正在使用这个正则表达式来获取文件中标签的内容。varregex=newRegExp("((?:.|\\s)*)");这会导致v8引擎无限期挂起。现在,如果我使用newRegExp("([\s\S]*)"),一切都很好。有人知道为什么第一个花费的时间太长吗? 最佳答案 这对最后一次关闭后出现的长空格序列造成灾难性的回溯标签。考虑主题字符串以100个空格结尾的情况。首先,它将它们全部与.匹配在交替的左侧。失败是因为没有结束标记,因此它尝试将最后一个字符与\s匹配反而。这也失败了,因此它尝试将倒数第二个空格匹配为\s最后一个空格为..失

javascript - V8中JS中对象属性的缓慢删除

为了训练自己一点Typescript,我写了一个simpleES6Map+Set-likeimplementationbasedonplainJSObject.它只适用于原始键,所以没有桶,没有哈希码等。我遇到的问题是实现删除方法。使用普通的delete速度慢得令人无法接受。对于大型map,它比ES6map删除慢300-400倍。我注意到如果对象的大小很大,性能会大幅下降。在NodeJS7.9.0(例如Chrome57)上,如果对象具有50855个属性,delete性能与ES6Map相同。但是对于50856个属性,ES6映射要快2个数量级。这是要重现的简单代码://fornode6:7

javascript - V8 内部 - 匿名函数的处理

有关完整故事,请查看myotherquestion.基本上,我曾问过在以下代码的套接字处理程序中使用命名函数是否更有效:varapp=require('express').createServer()vario=require('socket.io').listen(app);app.listen(8080);//Someunrelatedstuffio.sockets.on('connection',function(socket){socket.on('action1',function(data){//logicforaction1});socket.on('action2',f

javascript - 使用 V8 的 Javascript 中的文件系统 I/O

我的印象是,如今javascript可以用作浏览器之外的适当的通用编程语言,使用独立的解释器,如V8或SpiderMonkey。所以我继续安装V8。但是,我想做的第一件事是读入文件并进行一些处理。我环顾四周,没有找到使用JS/V8执行此操作的明显方法。我的直觉告诉我,在V8中必须有一个围绕C++文件i/o函数的包装函数。这已经完成了吗?还是我需要自己实现?或者也许我错过了重点!?感谢您提供的任何帮助! 最佳答案 有一个名为nodeJS的项目专为此设计:http://nodejs.org/-它才刚刚开始变得真正流行。特定于文件IO的示

javascript - setTimeout 和 V8

我已经独立安装了V8并执行如下javascript代码:./d8source.js。当我使用setTimeout时,我收到ReferenceError:setTimeoutisnotdefined。这是应该的吗?是否可以以某种方式包含此功能? 最佳答案 setTimeout不是ECMA-262的一部分,它是由浏览器实现的。但是,如果您安装Node.js(这是V8+extras)你会得到一个命令行setTimeout。 关于javascript-setTimeout和V8,我们在Stack

javascript - V8 javascript 引擎有 GIL 吗?

我读到V8Javascript引擎是一个即时编译器。PyPy是一个Python解释器,也是一个即时编译器。PyPy以在存在多个线程时具有GIL而闻名。V8Javascript引擎是否有类似全局解释器锁(GIL)的东西来处理网络工作线程?是否所有动态语言在处理多核时都存在问题?如果是,为什么JIT编译器在处理GIL时会出现问题? 最佳答案 ChromiumWebWorkers是在V8Isolates之上实现的。每个Isolate本质上都是一个完全独立的V8VM实例。许多Isolates可以共存于同一个进程中并同时执行JavaScrip

javascript - 为什么在 V8 上调用对象字面量的方法会更慢?

我对这个simplejsperftest的结果感到惊讶:Benchmark.prototype.setup=function(){varO=function(){this.f=function(){};}varo=newO();varo2={f:function(){}};};//Testcase#1o.f();//~721Mops/s//Testcase#2o2.f();//~135Mops/s我希望两者执行相同(事实上,Firefox中的性能相似)。V8一定在案例#1上优化了一些东西,但是什么? 最佳答案 关于V8和jsPerf

javascript - Chrome V8 错误?函数在第二次被调用后表现不同

请看下面的JavaScript。我已经去掉了其中的内容,因此您可以关注问题的本质。您会注意到我连续两次调用prepPath函数,传入完全相同的字符串。在firefox和IE8中,此函数每次都会发出true警报(正如预期的那样)。但是,在Chromium5.0.375.127(55887)Ubuntu10.04中,函数第一次返回true,第二次调用返回false,尽管输入保持完全相同!functionprepPath(str){varregX=/[^\s/"'\\].*[^\s/"'\\]/g;if(regX.test(str)){alert("true:"+str);}else{ale