Skip to content
Snippets Groups Projects
Select Git revision
  • move-gl-dropdown
  • improve-table-pagination-spec
  • move-markdown-preview
  • winh-fix-merge-request-spec
  • master default
  • index-namespaces-lower-name
  • winh-single-karma-test
  • 10-3-stable
  • 36782-replace-team-user-role-with-add_role-user-in-specs
  • winh-modal-internal-state
  • tz-ide-file-icons
  • 38869-milestone-select
  • update-autodevops-template
  • jivl-activate-repo-cookie-preferences
  • qa-add-deploy-key
  • docs-move-article-ldap
  • 40780-choose-file
  • 22643-manual-job-page
  • refactor-cluster-show-page-conservative
  • dm-sidekiq-versioning
  • v10.4.0.pre
  • v10.3.0
  • v10.3.0-rc5
  • v10.3.0-rc4
  • v10.3.0-rc3
  • v10.3.0-rc2
  • v10.2.5
  • v10.3.0-rc1
  • v10.0.7
  • v10.1.5
  • v10.2.4
  • v10.2.3
  • v10.2.2
  • v10.2.1
  • v10.3.0.pre
  • v10.2.0
  • v10.2.0-rc4
  • v10.2.0-rc3
  • v10.1.4
  • v10.2.0-rc2
40 results

instrumentation_spec.rb

Blame
Forked from GitLab.org / GitLab FOSS
Source project has a limited visibility.
  • Yorick Peterse's avatar
    1b077d2d
    Use custom code for instrumenting method calls · 1b077d2d
    Yorick Peterse authored
    The use of ActiveSupport would slow down instrumented method calls by
    about 180x due to:
    
    1. ActiveSupport itself not being the fastest thing on the planet
    2. caller_locations() having quite some overhead
    
    The use of caller_locations() has been removed because it's not _that_
    useful since we already know the full namespace of receivers and the
    names of the called methods.
    
    The use of ActiveSupport has been replaced with some custom code that's
    generated using eval() (which can be quite a bit faster than using
    define_method).
    
    This new setup results in instrumented methods only being about 35-40x
    slower (compared to non instrumented methods).
    1b077d2d
    History
    Use custom code for instrumenting method calls
    Yorick Peterse authored
    The use of ActiveSupport would slow down instrumented method calls by
    about 180x due to:
    
    1. ActiveSupport itself not being the fastest thing on the planet
    2. caller_locations() having quite some overhead
    
    The use of caller_locations() has been removed because it's not _that_
    useful since we already know the full namespace of receivers and the
    names of the called methods.
    
    The use of ActiveSupport has been replaced with some custom code that's
    generated using eval() (which can be quite a bit faster than using
    define_method).
    
    This new setup results in instrumented methods only being about 35-40x
    slower (compared to non instrumented methods).