草庐IT

v8-shell

全部标签

javascript - Git Shell 中的 Meteor (mingw)

我正在尝试为MeteorJS编写教程,但我无法使用GithubforWindows附带的GitShell使其正常工作。它找不到meteor命令。它在cmd中工作,并且在Windows环境路径中。我究竟做错了什么? 最佳答案 要从MinGW的MSYSshell运行*.bat命令,您必须将执行重定向到cmd.exe,因此:cmd//cfoo.bat[args...]foo.bat命令文件必须位于$PATH内的目录中,(或者您必须指定完整路径名...使用斜杠,不是反斜杠,除非您使用两个作为每个路径名分隔符)。另外,请注意双斜杠,以告知cm

javascript - V8 引擎将 JavaScript 编译为机器代码。那么,为什么 node.js 不比 C 快?

根据languagebenchmarks,JavaScriptV8在regex-dna程序上比其他编程语言更快。那么,为什么node.js应用程序(即http服务器)不比C应用程序(即Nginx、Lighttpd)快? 最佳答案 因为V8应用程序是javascript应用程序。即使javascript最终被编译为机器代码,运行时特性也不同。例如,如果您在一个对象中调用一个函数,而该对象没有定义该函数,则运行时必须通过遍历原型(prototype)层次结构来定位该函数,该层次结构可以在程序的生命周期中随时更改。可以进行巧妙的优化,但开

javascript - 如何 "Lock down"V8?

我是V8的新手,并计划在PythonWeb应用程序中使用它。目的是让用户提交并执行某些JS脚本。显然这是一种安全威胁,所以我正在寻找记录人们可能“锁定”v8的方式的资源。例如,我可以创建一个允许调用的函数白名单吗?或者不允许引用的库黑名单? 最佳答案 如果你使用普通的V8(即不是像node.js这样的东西),就不会有任何危险的功能。JavaScript本身没有包含文件系统函数等的标准库。恶意用户唯一能做的就是创建无限循环、深度递归和内存消耗。 关于javascript-如何"Lockdo

javascript - Node : How to free buffers that get allocated outside of the V8 memory heap

我有一个应用程序,我按顺序从服务器下载mp3文件,将它们临时存储在我的服务器中,然后将它们直接流式传输到客户端,如下所示:functiondownloadNextTrack(){varrequest=http.get('http://mp3server.com',function(response){response.on('data',function(data){fs.appendFile('sometrack.mp3',data,function(err){});});response.on('end',function(){streamTrack('sometrack.mp3'

javascript - node.js v8 垃圾回收似乎没有触发

我很困惑,因为我的应用程序正在泄漏内存。它是一个每分钟处理数十万个数据包的tcp服务器。我检查了代码,对其进行了改进并分析了内存。一切似乎都很好,在低流量的本地测试实际上表明gc正确释放了内存。但是当在实时流量大的服务器上时,它不会。所以我尝试使用expose-gc选项并在每次断开连接时添加强制gc,现在我发现内存不再泄漏或者是否每次都泄漏?所以,我的结论是gc没有激活。我的服务器有3GB的内存,应用程序在短短几个小时内就吃掉了其中的2.8GB。现在使用强制gc,应用程序不再泄漏。它维持着大约200MB的内存。那么,我的问题是,为什么gc没有被触发? 最佳答

javascript - V8 是否检测 int 变量并更有效地处理它们?

这是关于Node.JS的更多内容,它使用V8引擎。这是也用于GoogleChrome的JavaScript引擎。我听说V8非常快,不仅对于Node,对于浏览器也是如此。但是,我注意到关于JavaScript的一件事是,类型没有针对变量进行编码。要在Java中实现这一点,您需要一个Object变量类型来处理所有内容。这在例如for循环中的效率会大大降低:for(vari=0;i我的问题是,V8如何处理变量类型?它是否知道此i变量始终是int或long?(我认为这不太可能,因为i++能够将long转换为double。)或者V8是否以无关紧要的方式处理事情?我认为JIT编译器创建的一些简单示

javascript - 为什么在这种情况下 v8 会耗尽内存?

根据node.js文档,一个Node在32位版本上有512meg的限制,在64位版本上有1.4gig的限制。ChromeAFAICT的限制类似。(+/-25%)那么,为什么这段代码从不使用超过~424meg的内存却会耗尽内存?这是代码(代码是废话。这个问题不是关于代码在做什么,而是关于代码为什么失败)。varlookup='superCaliFragilisticExpialidosiousThispartdoesnotrealllymattersd';functionencode(num){returnlookup[num];}functionmakeString(uint8){va

javascript - 什么是 Node.JS 的 getHiddenValue 和 setHiddenValue 函数,它们包装了 V8 的 GetPrivate 和 SetPrivate?

由于非常复杂的原因,我正在研究以更好地了解Node.JS的内部结构,并发现了两个用途不明的函数。这些是功能以及如何访问它们。process.binding('util').setHiddenValueprocess.binding('util').getHiddenValue来自theirnativecodedeclarations,很明显它们包装了以下V8函数:v8::Object::SetPrivatev8::Object::GetPrivate我还制作了一个小片段,展示了他们可以做什么。'usestrict';varbinding=process.binding('util');

javascript - 匹配行首时 JavaScript V8 正则表达式引擎中的错误?

我有一个非常漂亮的工具,underscore-cli,这是打印出帮助/使用信息时最奇怪的行为。在usage()函数中,我这样做是为了缩进文本block(例如,选项):str.replace(/^/,"");这个正则表达式,除了非常明显之外,还直接来自TJHollowaychuk的commander.js代码。正则表达式是正确的。然而,我在使用文本的中间插入了奇怪的空格。像这样:Commands:...valuesRetrieveallthevaluesofanobject'sproperties.extendOverridepropertiesintheinputdata.defaul

javascript - 如何将结构从 V8 C++ 函数返回到 javascript 模块

我是Javascript和V8库的新手。我的要求是调用C++函数并将C结构返回给Javascript模块。structempDetails{intempNo;stringempName;};v8::HandlegetDetails(constv8::Arguments&args){if((args.Length()!=1)||!args[0]->IsUint32()){returnv8::ThrowException(v8::Exception::Error(v8::String::New("Invalid>arguments.")));}uint32_tuserId=args[0]-