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.

Reply via email to