Put everything into an ArrayBuffer and call C++ just once. On Sat, May 16, 2020, 15:07 Feng Wang <jfwf2...@gmail.com> wrote:
> I have an image (1024x1024x3) that needs to be process pixel-by-pixel. The > per-pixel processing code is written using javascript. I've found that it > takes 277ms to loop through this handler in c++ code, and only 10ms to loop > in javascript code. I want to know how to make the c++ call javascript > function as fast as possible. > > //javascript per-pixel processing function > var pixelfunction=function( rgb , index ) > { > var outval = (rgb[0]-rgb[1]/(rgb[0]+rgb[1]) ; > return outval; > } > > > > //c++ codes loop call pixelfunction > ... > v8::Function* pixelFunc = ...; // this Function pointer is pixelfunction > in javascript. > v8::Local<v8::Uint8Array> vals = ...; // > v8::Local<Value> targs[2] ; > for(int it = 0 ;it<1024*1024;++it) > { > vals = ...; // get r,g,b values from image ; > targs[0] = vals; > targs[1] = v8::Integer::New( global , it ); > pixelFunc->Call( context , context->Global() , 2 , targs);//For > convenience, I'm giving up the return value. > } > ... > > - > //javascript loop call: > var vals=new Uint8Array(3); > for(var it = 0 ; it < 1024*1024 ; ++it ) > { > vals=...; //get r,g,b values from image > pixelfunction( vals , it );//For convenience, I'm giving up the return > value. > } > > -- > -- > v8-dev mailing list > v8-dev@googlegroups.com > http://groups.google.com/group/v8-dev > --- > You received this message because you are subscribed to the Google Groups > "v8-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to v8-dev+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/v8-dev/dd3c7a28-1144-4e5f-a982-15e8558d7e5c%40googlegroups.com > <https://groups.google.com/d/msgid/v8-dev/dd3c7a28-1144-4e5f-a982-15e8558d7e5c%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-dev/CAFSTc_g3hQ9P3bevpXqjux%2BZa%3DMcZmQRyjQ-uD62Mi3w_tkezg%40mail.gmail.com.