[ruby-cvs:69805] k0kubun:r62641 (trunk): vm.c: add mjit_enable_p flag

k0kubun at ruby-lang.org k0kubun at ruby-lang.org
Sat Mar 3 13:07:02 JST 2018


k0kubun	2018-03-03 13:07:02 +0900 (Sat, 03 Mar 2018)

  New Revision: 62641

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=62641

  Log:
    vm.c: add mjit_enable_p flag
    
    to count up total calls properly. Some places (especially CALL_METHOD)
    invoke mjit_exec twice for one method call. It would be problematic when
    debugging, or possibly it would result in a wrong profiling result.
    
    This commit doesn't have impact for performance:
    
    * Optcarrot benchmark
    
    ** before
    
    fps: 59.37757770848619
    fps: 56.49998488958699
    fps: 59.07900362739362
    fps: 58.924749807695996
    fps: 57.667905665594894
    fps: 57.540021018385254
    fps: 59.5518055679647
    fps: 55.93831555148311
    fps: 57.82685112863262
    fps: 59.22391754481736
    checksum: 59662
    
    ** after
    
    fps: 58.461881158098194
    fps: 59.32685183081354
    fps: 54.11334310279802
    fps: 59.2281560439788
    fps: 58.60495705318312
    fps: 55.696478648491045
    fps: 58.49003452654724
    fps: 58.387771929393224
    fps: 59.24156772816439
    fps: 56.68804731968107
    checksum: 59662
    
    * Discourse
    
    Your Results: (note for timings- percentile is first, duration is second in millisecs)
    
    ** before (without JIT)
    
    categories_admin:
      50: 16
      75: 17
      90: 24
      99: 37
    home_admin:
      50: 20
      75: 20
      90: 24
      99: 42
    topic_admin:
      50: 16
      75: 16
      90: 18
      99: 28
    categories:
      50: 36
      75: 37
      90: 45
      99: 68
    home:
      50: 38
      75: 40
      90: 53
      99: 92
    topic:
      50: 14
      75: 15
      90: 17
      99: 26
    
    ** after (without JIT)
    
    categories_admin:
      50: 16
      75: 16
      90: 24
      99: 36
    home_admin:
      50: 19
      75: 20
      90: 23
      99: 41
    topic_admin:
      50: 16
      75: 16
      90: 19
      99: 33
    categories:
      50: 35
      75: 36
      90: 44
      99: 61
    home:
      50: 38
      75: 40
      90: 52
      99: 101
    topic:
      50: 14
      75: 15
      90: 15
      99: 24
    
    ** before (with JIT)
    
    categories_admin:
      50: 19
      75: 23
      90: 29
      99: 44
    home_admin:
      50: 24
      75: 26
      90: 32
      99: 46
    topic_admin:
      50: 20
      75: 22
      90: 27
      99: 44
    categories:
      50: 41
      75: 43
      90: 51
      99: 66
    home:
      50: 46
      75: 49
      90: 56
      99: 68
    topic:
      50: 18
      75: 19
      90: 22
      99: 31
    
    ** after (with JIT)
    
    categories_admin:
      50: 18
      75: 21
      90: 28
      99: 42
    home_admin:
      50: 23
      75: 25
      90: 31
      99: 51
    topic_admin:
      50: 19
      75: 20
      90: 24
      99: 31
    categories:
      50: 41
      75: 44
      90: 52
      99: 69
    home:
      50: 45
      75: 48
      90: 61
      99: 88
    topic:
      50: 19
      75: 20
      90: 24
      99: 33

  Modified files:
    trunk/insns.def
    trunk/tool/ruby_vm/views/_mjit_compile_send.erb
    trunk/tool/ruby_vm/views/mjit_compile.inc.erb
    trunk/vm.c
    trunk/vm_eval.c
    trunk/vm_exec.h
    trunk/vm_insnhelper.h


More information about the ruby-cvs mailing list