Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

Debug options for IRHydra (deoptimizations tracing) #7122

Closed
puzrin opened this issue Feb 15, 2014 · 11 comments
Closed

Debug options for IRHydra (deoptimizations tracing) #7122

puzrin opened this issue Feb 15, 2014 · 11 comments

Comments

@puzrin
Copy link

puzrin commented Feb 15, 2014

It would be nice to have more options for deoptimizations debug: http://mrale.ph/irhydra/2/

  1. --print-opt-code
  2. patch for IRHydra2

Is it possible to enable those by default? If not, is it possible to have ready dev binaries, that can be installed easy via nvm and so on. Building dev configuration manually is not convenient.

@trevnorris
Copy link

  1. haven't done any performance analysis
  2. must wait for upgrade to V8 3.24.39

@puzrin
Copy link
Author

puzrin commented Apr 26, 2014

Can i hope to see IRHydra2 support in nearest releases? AFAIK v8 is now upgraded to acceptable version.

@bnoordhuis
Copy link
Member

--print-opt-code only works when V8 is compiled with ENABLE_DISASSEMBLER. That flag is disabled in release builds unless v8_enable_disassembler=1 is set.

Is it worth it to enable it by default? It will make the binary a few hundred kB bigger and add a few seconds to the build.

@puzrin
Copy link
Author

puzrin commented Apr 26, 2014

I use node to write high-speed modules. Last example is https://github.com/nodeca/pako , that is just 1.3 time slower than native C code. Problem with such modules is lack of easily accessible tools.

IMHO, good instruments will motivate developpers to do interesting things. I'll be fine with ANY one-click solution, that will not require manually edit configs and rebuild node froum src. Special official dev build will be ok, for example.

@trevnorris
Copy link

IRHydra2 can be used with current master. You only need the build option if
you want to be able to see the assembly code generated by Crankshaft. If
viewing the IR generated by Hydrogen, code paths, deoptimizations, etc. are
enough then you need no additional build option.

@puzrin
Copy link
Author

puzrin commented Apr 27, 2014

IMHO, viewing assembly src is useful, to better understand if optimized code still contains unboxing calls or not. This also helps to locate problem places, because IRHydra2 not always can find exact string number in js, that caused deoptimization.

@jasnell
Copy link
Member

jasnell commented Jun 22, 2015

@trevnorris @bnoordhuis ... any further thoughts on this one?

@trevnorris
Copy link

I know the disassembler was enabled in the io.js build, but I forget if it was done in Node.js.

@jasnell
Copy link
Member

jasnell commented Jun 22, 2015

Ok, so the question then becomes: should we enable it in joyent/node master or v0.12 going forward or simply pick it up in the converged stream?

@bnoordhuis
Copy link
Member

I think @indutny did that in #7639? Or was that reverted?

@jasnell
Copy link
Member

jasnell commented Jun 22, 2015

Don't believe so. Will close this then!

@jasnell jasnell closed this as completed Jun 22, 2015
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants