草庐IT

embedded-v8

全部标签

ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错)

我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

LVGL V8动画

动画/*INITIALIZEANANIMATION 初始化一个动画*-----------------------*/lv_anim_ta;lv_anim_init(&a);/*MANDATORYSETTINGS 必选设置*------------------*//*Setthe"animator"function 设置“动画”功能*/lv_anim_set_exec_cb(&a,(lv_anim_exec_xcb_t)lv_obj_set_x);/*Setthe"animator"function*/lv_anim_set_var(&a,obj);/*Lengthoftheanim

ruby - 来自 rails 3 中 therubyracer/v8 的 javascript 错误的堆栈跟踪

我正在使用therubyracer和v8在Rails3应用程序中运行一些javascript如果出现任何问题,错误消息将通过通常的Rails3异常通知流程通过电子邮件发送给我。但是,我返回的错误消息非常模糊,堆栈跟踪不会进入javascript文件本身。这是可以理解的,但是很难调试。这是一个例子:V8::JSError:Cannotreadproperty'0'ofundefinedbacktrace:lib/libraryname.rb:32:in`function_that_calls_v8'lib/libraryname.rb:18:in`fetch_and_update'app

javascript - Function() 构造函数是否没有像 eval 那样被 V8 优化?

我们正在尝试一种通过WebSockets接收网络组件的方法。这些组件包含自定义脚本,它们应该在组件内的上下文中运行。简而言之,我们有一些脚本字符串并想要运行它们。现在我们为此使用eval,像这样:functionctxEval(ctx,__script){eval(__script);//returnthingswiththectx}并按预期工作,但我读到任何包含eval的函数都没有被V8优化。我想像这样将它转换为newFunction():newFunction("ctx",__script)(ctx);这样我可以实现与上面的ctxEval函数相同的效果。我们知道Function是e

javascript - 在 V8 中,如何在垃圾回收 JavaScript 对象后删除包装的 C++ 对象?

假设我有thistutorial中提供的代码.我该如何修改它,以便当V8的GC销毁JavaScript包装器时,创建的PointC++对象调用其析构函数并从内存中删除? 最佳答案 您想创建一个持久句柄并使其变弱(v8::Persistent::MakeWeak(data,cb))。在回调中,您可以删除C++对象。与垃圾收集器一样,确定弱可达性的确切时间取决于执行GC的时间。因此,native资源的释放可能比您预期的要晚得多。您可以通知V8您持有的原生资源数量(v8::AdjustAmountOfExternalAllocatedMe

javascript - "Isolate"在V8中的作用是什么?怎么可能单独制作 "Isolate"呢?

到目前为止我发现的“隔离”的解释。实验#1:http://izs.me/v8-docs/classv8_1_1Isolate.html“Isolate表示V8引擎的一个孤立实例。V8分离株具有完全独立的状态。来自一个隔离区的对象不得用于其他隔离区。当V8被初始化时,一个默认的isolate被隐式地创建和输入。嵌入器可以创建额外的隔离并在多个线程中并行使用它们。在任何给定时间,最多只能有一个线程进入隔离区。Locker/UnlockerAPI可用于同步。”实验#2:https://developers.google.com/v8/get_started“隔离是一个具有自己堆的VM实例。”

javascript - v8 代理引用错误

我正在尝试在v8(版本4.6.85.31)中使用ES6代理,但我收到了ReferenceError:Proxyisnotdefined(我正在使用来自golang的v8)我还在node.js5.1.0中使用--harmony-proxies标志尝试了相同的操作,它支持代理(相同的v8版本)但是如何在v8中直接使用代理?我需要用一些标志来编译它吗?谢谢! 最佳答案 遇到同样问题的可以用std::stringflags("--harmony_proxies");V8::SetFlagsFromString(flags.c_str(),f

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'