Modify interface implementations to use invokedynamic for upcalls
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 12/100
- Type d'issue
- Refactorisation
- Clarté
- À clarifier
- Activité
- Calme
- Domaine
- performance
Piste de recherche
The work sits in the JRuby interface-coercion path, where Java interface implementations call back into Ruby objects through CachingCallSite. The issue depends on ScopedValue access to ThreadContext, linked as jruby/jruby#9496, so start by reading that issue and the existing CachingCallSite code. Done would mean a design agreed in the thread, with upcalls using invokedynamic and benchmarks showing the improvement.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Interface implementations using JRuby objects currently use our CachingCallSite logic for invoking the Ruby object's methods, be that object a full Ruby object or a proc/block for lambda-like interface coercion. These upcalls back into JRuby should be made more efficient in two ways:
- By using a ScopedValue to access the ThreadContext.
- By using InvokeDynamic to call the actual method or block body.
This would represent the "last mile" for interface performance and allow calls through such objects to inline and optimize with the Java code that calls them.
- Langage dominant
- Ruby
- Étoiles
- 3.9k
- Forks
- 951
- Merge moyen
- 1 j 23 h
- PR mergées (30 j)
- 94
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de jruby/jruby
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
Les mainteneurs répondent en général sous 1 jour
-
ffi stdlib
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
jruby/jruby#4863 · 9 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 80/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 70/100
jruby/jruby#9883 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de jruby/jruby
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
rubyevents/rubyevents#2277 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 1-3 heures Accessibilité débutants 92/100
Les mainteneurs répondent en général sous 2 jours