<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/python-type-checker-comparison-speed-and-memory-usage-a1e8zdlov" -->

---
title: Python Type Checker Comparison: Speed and Memory Usage
description: A benchmark from Meta's Pyrefly team compares speed and memory usage of four Python type checkers—Pyrefly 0.60.0, Ty 0.0.29, Pyright 1.1.408, and Mypy...
canonical: https://daily.dev/posts/python-type-checker-comparison-speed-and-memory-usage-a1e8zdlov
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Python Type Checker Comparison: Speed and Memory Usage | daily.dev
og:description: A benchmark from Meta's Pyrefly team compares speed and memory usage of four Python type checkers—Pyrefly 0.60.0, Ty 0.0.29, Pyright 1.1.408, and Mypy...
og:url: https://daily.dev/posts/python-type-checker-comparison-speed-and-memory-usage-a1e8zdlov
og:image: https://api.daily.dev/og/posts/a1e8ZDLOv.png
og:image:alt: Python Type Checker Comparison: Speed and Memory Usage
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Python Type Checker Comparison: Speed and Memory Usage

**[Pyrefly: A Fast Python Type Checker and Language Server \| Pyrefly](https://daily.dev/sources/pyrefly)** · 9 min read · 0 upvotes · 0 comments

## Summary

A benchmark from Meta's Pyrefly team compares speed and memory usage of four Python type checkers—Pyrefly 0.60.0, Ty 0.0.29, Pyright 1.1.408, and Mypy 1.19.1—across 53 popular open-source packages. The two Rust-based checkers (Pyrefly and Ty) are consistently an order of magnitude faster and lighter on memory than Pyright and Mypy; for example, Pyright takes 151s on scipy while Pyrefly finishes in 4.8s and Ty in 2.8s. The post explains the performance gaps via implementation language, architecture (Pyrefly avoids the Salsa caching framework Ty uses), inference features, and maturity, and points to a public dashboard tracking results daily.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://pyrefly.org/blog/speed-and-memory-comparison>

## Questions this post answers

### How much faster is Pyrefly than Pyright when type checking large Python packages like pandas or numpy?

Pyrefly checks pandas in 1.9 seconds versus Pyright's 144.4 seconds, and numpy in 4.8 seconds versus Pyright's 70.9 seconds, using roughly 1 GB of RAM compared to over 3 GB for Pyright on numpy. Across 53 tested open-source packages, Pyrefly and Ty are generally an order of magnitude faster than Pyright and Mypy, with Mypy run in strict mode for comparability.

_Track how new Rust-based type checkers stack up before switching your team's CI pipeline, with comparisons like this on daily.dev._

### Why is Pyrefly generally faster and more memory-efficient than Ty even though both are written in Rust?

Pyrefly's team chose not to use Salsa, the Rust caching framework that Ty relies on, giving them more control over when memory is freed, which likely explains Pyrefly's lower memory usage on 31 of 53 tested packages. Both tools are still faster than Mypy and Pyright overall, but architecture choices beyond just the implementation language account for their differences.

_Compare architectural tradeoffs between emerging Rust-based tools like Pyrefly and Ty on daily.dev before adopting one._

### Why do some Python packages like scipy and pandas take much longer to type check than others?

Scientific computing packages like scipy, pandas, sympy, and numpy are slow to type check because they contain methods with dozens of overloads, type aliases with large unions, and often have low or incomplete type annotation coverage. Type checkers that infer return types, such as Pyright and Pyrefly, can produce large unions for un-annotated functions, further compounding the cost; scipy takes Pyright 151.3 seconds versus 2.8-4.8 seconds for Ty and Pyrefly.

_Keep tabs on type checker performance quirks like these on daily.dev before your CI times balloon on scientific packages._

## Similar posts on daily.dev

- [Pyrefly 1.0: A fast, forward-looking Python linter](https://daily.dev/posts/pyrefly-1-0-a-fast-forward-looking-python-linter-k4vukcqpr) · InfoWorld · 0 upvotes · 0 comments
- [Python Type Checker Comparison: Typing Spec Conformance](https://daily.dev/posts/python-type-checker-comparison-typing-spec-conformance-yvjkxqkwd) · Hacker News · 1 upvotes · 0 comments
- [Adopting Pyrefly as the Python type checker at Google](https://daily.dev/posts/adopting-pyrefly-as-the-python-type-checker-at-google-ixrvzgxi3) · Google Open Source Blog · 0 upvotes · 0 comments
- [Pyrefly Now Type Checks PyTorch – PyTorch](https://daily.dev/posts/pyrefly-now-type-checks-pytorch-pytorch-adohlgdfc) · PyTorch · 0 upvotes · 0 comments

---

Tags: [#performance](https://daily.dev/tags/performance), [#python](https://daily.dev/tags/python)

[View this post on daily.dev](https://daily.dev/posts/python-type-checker-comparison-speed-and-memory-usage-a1e8zdlov)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Python Type Checker Comparison: Speed and Memory Usage","url":"https://daily.dev/posts/python-type-checker-comparison-speed-and-memory-usage-a1e8zdlov","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/python-type-checker-comparison-speed-and-memory-usage-a1e8zdlov"},"datePublished":"2026-08-23T12:17:34.823Z","dateModified":"2026-10-14T02:25:01.867Z","description":"A benchmark from Meta's Pyrefly team compares speed and memory usage of four Python type checkers—Pyrefly 0.60.0, Ty 0.0.29, Pyright 1.1.408, and Mypy...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/7aa87dfd42dec2912a37a45c42fe48fb?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/7aa87dfd42dec2912a37a45c42fe48fb?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Pyrefly: A Fast Python Type Checker and Language Server | Pyrefly","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Pyrefly: A Fast Python Type Checker and Language Server | Pyrefly","logo":"https://media.daily.dev/image/upload/s--Qzw5NpnF--/c_limit,w_256/f_auto,q_auto/v1787487420/logos/pyrefly?_a=BAMAMicg0","url":"https://daily.dev/sources/pyrefly"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/python-type-checker-comparison-speed-and-memory-usage-a1e8zdlov","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"performance,python","timeRequired":"PT9M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Pyrefly: A Fast Python Type Checker and Language Server | Pyrefly","item":"https://daily.dev/sources/pyrefly"},{"@type":"ListItem","position":3,"name":"Python Type Checker Comparison: Speed and Memory Usage"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/python-type-checker-comparison-speed-and-memory-usage-a1e8zdlov#faq","mainEntity":[{"@type":"Question","name":"How much faster is Pyrefly than Pyright when type checking large Python packages like pandas or numpy?","acceptedAnswer":{"@type":"Answer","text":"Pyrefly checks pandas in 1.9 seconds versus Pyright's 144.4 seconds, and numpy in 4.8 seconds versus Pyright's 70.9 seconds, using roughly 1 GB of RAM compared to over 3 GB for Pyright on numpy. Across 53 tested open-source packages, Pyrefly and Ty are generally an order of magnitude faster than Pyright and Mypy, with Mypy run in strict mode for comparability. Track how new Rust-based type checkers stack up before switching your team's CI pipeline, with comparisons like this on daily.dev."}},{"@type":"Question","name":"Why is Pyrefly generally faster and more memory-efficient than Ty even though both are written in Rust?","acceptedAnswer":{"@type":"Answer","text":"Pyrefly's team chose not to use Salsa, the Rust caching framework that Ty relies on, giving them more control over when memory is freed, which likely explains Pyrefly's lower memory usage on 31 of 53 tested packages. Both tools are still faster than Mypy and Pyright overall, but architecture choices beyond just the implementation language account for their differences. Compare architectural tradeoffs between emerging Rust-based tools like Pyrefly and Ty on daily.dev before adopting one."}},{"@type":"Question","name":"Why do some Python packages like scipy and pandas take much longer to type check than others?","acceptedAnswer":{"@type":"Answer","text":"Scientific computing packages like scipy, pandas, sympy, and numpy are slow to type check because they contain methods with dozens of overloads, type aliases with large unions, and often have low or incomplete type annotation coverage. Type checkers that infer return types, such as Pyright and Pyrefly, can produce large unions for un-annotated functions, further compounding the cost; scipy takes Pyright 151.3 seconds versus 2.8-4.8 seconds for Ty and Pyrefly. Keep tabs on type checker performance quirks like these on daily.dev before your CI times balloon on scientific packages."}}]}
```

