Benoit Daloze

Results 1302 comments of Benoit Daloze

It's actually even more visible on JVM, but that has the caveat it might inline some virtual calls in the interpreter due to these benchmarks being relatively small. So generally...

> Inlining here means, I essentially integrate these trivial nodes into the dispatch chain directly, instead of having to go through a Truffle method call. Right, I call that "AST...

@chrisseaton No, there was no change in this area since https://github.com/oracle/truffleruby/issues/2261#issuecomment-812049762

This blog post details Multi-Tier and also shows the effect of the interpreter optimizations in this issue: https://medium.com/graalvm/multi-tier-compilation-in-graalvm-5fbc65f92402#a16c (under `Interpreter impact` if the anchor doesn't work)

I can reproduce the difference locally on Linux: ``` ruby 2.7.3p183 (2021-04-05 revision 6847ee089d) [x86_64-linux] 0.000000 0.000860 0.000860 ( 0.000862) Warming up -------------------------------------- Dir#[] 126.000 i/100ms Calculating ------------------------------------- Dir#[] 1.288k...

``` $ ruby --cpusampler --cpusampler.Mode=roots bench_dir_glob.rb ---------------------------------------------------------------------------------------------------------------------------------------------------- Sampling Histogram. Recorded 12653 samples with period 1ms. Self Time: Time spent on the top of the stack. Total Time: Time spent somewhere...

We could potentially compare with strace for system calls. One way to avoid the extra `lstat` (seems used to find out if a given entry is a directory) would be...

sample from strace output: CRuby: ``` openat(AT_FDCWD, "src/main/java/org/truffleruby/interop", O_RDONLY|O_CLOEXEC|O_DIRECTORY) = 8 fstat(8, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 fcntl(8, F_GETFL) = 0x18000 (flags O_RDONLY|O_LARGEFILE|O_DIRECTORY) fcntl(8, F_SETFD, FD_CLOEXEC) = 0 getdents64(8, 0xd9e450...

They are designed to: * Always look the same, so the backtrace are consistent and can be tested meaningfully * Clickable in IntelliJ If we'd just print an absolute paths...

I see, then we could try ` relative path from initial CWD` or ` absolute path`. The latter might be fairly long and hard to read. The former depends on...