jjzjj

embedded-v8

全部标签

javascript - 属于单个隔离的多个 V8 上下文对象之间的共享/离散是什么?

我理解v8::Isolate的概念,并且我理解运行的所有内容都在与隔离关联的v8::Context中运行。与不同isolate关联的上下文不能共享任何内容。我的问题是,在单个隔离中有多个上下文是什么意思?上下文之间共享什么?它们之间有什么离散的?你什么时候可以在一个中制作一些东西并在另一个中使用它?通常在API中,如果某些东西在创建它时采用隔离或上下文,这似乎几乎是任意的。此外,欢迎就单个隔离中的多个上下文的用例提出任何建议,以帮助我开始更好地理解它们。我看到这个问题:Whatexactlyisthedifferencebetweenv8::Isolateandv8::Context?

javascript - 操纵 V8 ast

我打算直接在v8代码中实现一个js代码覆盖。我最初的目标是为抽象语法树中的每个语句添加一个简单的打印。我看到有一个AstVisitor类,它允许您遍历AST。所以我的问题是如何在访问者当前访问的语句之后向AST添加语句? 最佳答案 好的,我将总结我的实验。首先,我写的内容适用于V8,因为它在Chromium版本r157275中使用,因此可能不再有效-但我仍然会链接到当前版本中的位置。如前所述,您需要自己的AST访问者,例如MyAstVisior,它继承自AstVisitor并且必须实现一堆VisitXYZ那里的方法。唯一需要检测/检

V8 上的 JavaScript 测试

functionadd(x,y){returnx+y;}console.time("time1");for(vari=0;i结果是:时间1:1481毫秒,time2:102ms,我在nodejs上运行这个测试,但我不知道为什么第一个测试比第二个慢。 最佳答案 这是因为参数类型更改导致引擎盖下发生了去优化。要知道这一点,我们必须知道优化V8做了什么:内联这是一项重要的优化,对于性能提升至关重要。它用函数体代替函数调用以加速执行。如果一个函数的大小很小,它将被内联。这假设在函数调用中,参数是固定的。去优化V8在某些假设下进行优化。如果错

javascript - HTTP 直播 : how to listen for timed metadata embedded as ID3 tags using Javascript in iOS8?

我们有一个视频流平台,用户可以在其中播放实时视频流并将其与一组演示幻灯片同步。为了在iOS上显示广播,我们使用HTTPLiveStreaming。为了在iOS上的流中的正确时间显示幻灯片,我们监听了Apple的QuicktimeJavascriptAPI提供的qt_timedmetadataupdated事件。此处描述了此方法:http://www.wowza.com/forums/content.php?355-How-to-debug-timed-data-events-%28ID3-tags%29-from-Apple-HLS-streams-in-iOS-devices但是,在

javascript - 事件循环、libuv和v8引擎的关系

我正在学习Node.js的架构。我有以下问题。事件循环是libuv还是v8的一部分?事件队列是事件循环的一部分吗?事件队列是由libuv或v8引擎生成的还是事件循环本身?libuv和v8引擎有什么联系?如果事件循环是单线程的,libuv是否会创建多个线程来处理文件I/O?浏览器有事件循环机制还是只有Node.js有? 最佳答案 事件循环首先是一个高级概念,它是JavaScript编程模型的基础部分。实际上,每个V8嵌入器都需要实现一个事件循环。V8提供了一个默认实现,嵌入器可以替换或扩展它。我不明白这个问题。(我猜答案是"is",但

javascript - 为什么 V8 不能优化 try-catch-finally?

为什么V8无法优化try-catch-finallyblock,而其他著名的运行时(SpiderMonkey、Chakra)似乎对此没有问题? 最佳答案 除了问题的优先级相对较低外,没有特别的原因。这会在某个时候进行优化看看这个chromiumv8issue1065如果您以v8为目标,您可以将try-catch移动到单独的函数,但只有当它是一个真正的性能问题时才应该这样做,否则它只是过早的优化。"Programmerswasteenormousamountsoftimethinkingabout,orworryingabout,th

javascript - 在 Chrome V8 中实例化从 Object 扩展的类时,super() 不传递参数

下面的代码在ChromeV8中记录false但在Babel中记录true。feedbackfromGoogle说loggingfalse是应该的,而loggingtrue是Babel的一个错误。我查看了ES6规范,但仍然无法理解其背后的机制。任何想法将不胜感激!classNewObjextendsObject{constructor(){super(...arguments);//InV8,afterarguments===[{attr:true}]//ispassedasparametertosuper(),//this===NewObj{}inV8;//butthis===NewO

javascript - 在 v8 和 Node.js 中保存函数回调

您如何将javascript提供的回调保存在v8包装对象中,以供将来不仅在当前函数调用中使用。本质上,我想在C++中创建一个javascript对象,并在使用newObject()创建时提供一个函数回调。然后在整个C++对象生命周期中使用该回调。请参见下面的示例:我遇到的问题是,当我尝试在不同的静态函数中使用Handle对象时,它会出现段错误。在Nodejs文件中:varObject=require("./customModule");varobj=newObject(function(){console.log("Callbackcalled...")})//Emitcallback

javascript - VideoJS : Stopping video on modal close and not embedding in page

我一直在使用JavaScript脚本VideoJS:http://videojs.com/构建一些可以在弹出窗口中显示给用户的视频播放器。我按如下方式构建了弹出窗口:VideoJS.setupAllWhenReady();jQuery(document).ready(function(){//videoshavevideojsappliedtothem//$("video").VideoJS()$(".show-video").click(function(){$(".video-background").show();$(".video-container").fadeIn("fas

javascript - 如何将 Bing Maps v8 添加到 Angular 2.0?

我想将BingMapV8控件添加到我的Anguar2.0项目中。我想知道我需要做什么才能将BingMapV8添加到Angular2.0项目中。我附上了我的实现。我创建的组件无法加载。如何引用Microsoft.Maps.Map?这是bingmapv8的示例。如果将以下示例保存为HTML,则一切正常。bingmap键被剪掉了。addOneLayerItemHTMLfunctionloadMapScenario(){varmap=newMicrosoft.Maps.Map(document.getElementById('myMap'),{credentials:'MyBingMapKey