-
Notifications
You must be signed in to change notification settings - Fork 5.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New attribute trace_equivalent #2143
Conversation
Some instructions are spacial cases for another ones. These instructions need not preserve their trace counterparts. By reducing those unnecessary trace instructions we can strip binary size of vm_exec_core from 25,759 bytes to 24,924 bytes on my machine. Yes, this changeset slows traces down a bit. But is that a problem?
This is a part of #2100. |
could you explain more with examples? |
For instance |
I don't have a strong opinion on which we should prioritize, a binary size or performance, but as long as we're making some decision on trade-off, please share the benchmark results just in case. Possibly we may want to reuse the attr for ruby/tool/ruby_vm/views/mjit_compile.inc.erb Lines 29 to 32 in 14dd8d6
|
@k0kubun I don't know any benchmark instance that focuses on tracing performance. Do you have one? This changeset obviously does not affect normal runs. |
How to replace opt_plus to trace_opt_send_without_block ? Or make
Now, if we replace |
Look at the patch :) That's the same as before. We only change how
Yes. That's what I refer in "is that a problem?" in the original comment. Can we measure the magnitude somehow? |
#1970 can be something related to this. |
Some instructions are spacial cases for another ones. These instructions need not preserve their trace counterparts. By reducing those unnecessary trace instructions we can strip binary size of vm_exec_core from 25,759 bytes to 24,924 bytes on my machine.
Yes, this changeset slows traces down a bit. But is that a problem?