-
-
Notifications
You must be signed in to change notification settings - Fork 3
Empty overflowing polymorphic caches #452
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
base: trunk
Are you sure you want to change the base?
Conversation
I found this by running |
{
"django_minimal_requests": {
"benchmark": "django_minimal_requests",
"cg_instructions before": 707812,
"cg_instructions now": 706229,
"cg_instructions ∆": "-0.2%",
"interpreter_args": [],
"interpreter_name": "pyro",
"version before": "6d57ee64d871ce6d629e6475e7135ca5b17c3fef",
"version now": "a22b1dcde16deb463afb6cc70d1741c0a7c67350"
}
} |
This comment was marked as outdated.
This comment was marked as outdated.
TODO: Do we need to delete old dependency links? Can we even do that? |
a22b1dc
to
642dc1f
Compare
This comment was marked as outdated.
This comment was marked as outdated.
Ah, the least recently filled is only the first entry one time. Might be worth figuring out another strategy. |
Right now we have no notion of a megamorphic cache, so when a polymorphic cache is filled, any new receiver LayoutIds fall off the end into the slow full attribute lookup. With this change, polymorphic cache updates will remove the existing cache entries and add the new entry. Add tests.
642dc1f
to
9ddf1c8
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
e35181a
to
901ccc0
Compare
Summary
Benchmark detailsBase vs. New
CPython vs New
Base
New
CPython
|
Right now we have no notion of a megamorphic cache, so when a
polymorphic cache is filled, any new receiver LayoutIds fall off the end
into the slow full attribute lookup.
With this change, polymorphic cache updates will remove the
existing cache entries and add the new entry.
Add tests.