1-day current streak·32-day longest streak
Emery Berger Professor, Computer Science, Univ. of Massachusetts Amherst, Amazon Scholar at Amazon Web Services. My students, collaborators, and I in the PLASMA lab build innovative and impactful systems, especially…
Emery Berger
Professor, Computer Science, Univ. of Massachusetts Amherst, Amazon Scholar at Amazon Web Services.
My students, collaborators, and I in the PLASMA lab build innovative and impactful systems, especially focused on performance, reliability, and security. Among other things, I am the creator/maintainer of https://CSrankings.org. For the academic year 2025/2026, I am splitting my time between UMass and Amazon.
Recent blog posts
- AI Software Should be More Like Plain Old Software (SIGARCH/SIGPLAN)
- Coping with CoPilot (SIGARCH/SIGPLAN)
- Drop Whatever You're Researching and Start Working on Crypto! (SIGARCH)
- A Checklist Manifesto for Empirical Evaluation (SIGARCH/SIGPLAN)
Links
- PLASMA lab GitHub: 
- Personal GitHub: 
- Bluesky: @emeryberger.bsky.social
- Mastodon: 
- YouTube: 
- emeryberger.com, Medium blog
- Publications: Google Scholar, DBLP
PhD Students
PhD Alumni
- Dan Barowy, Williams College
- Charlie Curtsinger, Grinnell College
- Matthew Hertz, University of Buffalo
- Tongping Liu, ByteDance
- Gene Novark, "Quantitative Hedge Fund"
- Bobby Powers, Stripe
- John Vilk, Stripe
- Ting Yang, Meta (co-advised with Eliot Moss)
MS Alumni
- Justin Aquadro, MachineMetrics
- Breanna Devore-McDonald, Untether AI
- Yi Feng, Google
- Nitin Gupta, Netflix
- Vitaly Lvin, Google
Selected software from me and my collaborators (for a full list, see PLASMA)
- Scalene: A state-of-the-art CPU+GPU+memory profiler for Python, with AI-powered optimization suggestions
- Coz: A _causal profiler_ that tells you where to optimize your code (C/C++/Rust/Swift/Java)
- CSrankings: Ranks the world's CS departments
- Slipcover: Nearly zero-overhead code coverage analysis for Python
- ChatDBG: AI-assisted debugging in
lldb,gdb, andpdb. Uses AI to answer 'why'
- Commentator: Automatically comments Python code, adding docstrings and type annotations
- CWhy: ("See why") Explains and suggests fixes for C/C++/Rust compiler error messages.
- SQLwrite: SQLite3 with natural language to SQL, recommends indexes to optimize queries
Selected Talks
Performance Matters (Strange Loop 2019) !views
The second most popular Strange Loop video of all time!

Python Performance Matters (Strange Loop 2022)

Scalene (PyCon 2021) !views

How to Get Your Research Adopted (PLDI keynote) !views

Selected Papers
- ChatDBG: An AI-Powered Debugging Assistant (FSE 2025, Distinguished Artifact Award)
- Triangulating Python Performance with Scalene (OSDI 2023, Best Paper Award)
- Coz: Finding Code that Counts with Causal Profiling (Best Paper Award SOSP 2015, CACM Research Highlight)
malloc that eliminates fragmentation. [software]
- BLeak: Automatically Debugging Memory Leaks in Web Applications (PLDI 2018, CACM Research Highlight)
- DieHard: Probabilistic Memory Safety for Unsafe Languages (PLDI 2016, Most Influential Paper)
- DieHarder: Securing the Heap (CCS 2010)
- Stabilizer: Statistically Sound Performance Evaluation (ASPLOS 2013)
- Reconsidering Custom Memory Allocation (OOPSLA 2012, Most Influential Paper)
- Hoard: A Scalable Memory Allocator for Multithreaded Applications (ASPLOS 2019, Most Influential Paper)
malloc; Hoard algorithm integrated into the Mac allocator. [software]
Bio
Emery Berger is a Professor in the Manning College of Information and Computer Sciences at the University of Massachusetts Amherst, the flagship campus of the UMass system; he is also an Amazon Scholar. He graduated with a Ph.D. in Computer Science from the University of Texas at Austin in 2002. Professor Berger has been a Visiting Scientist at Microsoft Research and at the Universitat Politècnica de Catalunya (UPC) / Barcelona Supercomputing Center (BSC).
Professor Berger’s research spans programming languages, runtime systems, and operating systems, with a particular focus on systems that transparently improve reliability, security, and performance. He and his collaborators have created a number of influential software systems including Hoard, a fast and scalable memory manager that accelerates multithreaded applications (used by companies including British Telecom, Cisco, Crédit Suisse, Reuters, Royal Bank of Canada, SAP, and Tata, and on which the Mac OS X memory manager is based); DieHard, an error-avoiding memory manager that directly influenced the design of the Windows 7 Fault-Tolerant Heap; and DieHarder, a secure memory manager that was an inspiration for hardening changes made to the Windows 8 heap (see this map of the landscape of memory management research for an overview). He also created and maintains the widely-used CSrankings website.
His honors include the ACM SIGPLAN Distinguished Service Award (2024), a Microsoft Research Fellowship, an NSF CAREER Award, a Lilly Teaching Fellowship, the Distinguished Artifact Award for PLDI 2014, the Most Influential Paper Award at OOPSLA 2012, the Most Influential Paper Award at PLDI 2016, the ASPLOS 2019 Influential Paper Award, five SIGPLAN Research Highlights, five CACM Research Highlights (1, 2, 3, 4, 5), a Google Research Award, a Microsoft SEIF Award, and Best Paper Awards at FAST, OOPSLA, OSDI, and SOSP. Professor Berger served two terms (http://www.sigplan.org/ContactUs/" rel="noopener nofollow" target="_blank">1, https://sigplan.org/ContactUs/" rel="noopener nofollow" target="_blank">2) as an elected member of the SIGPLAN Executive Committee; he served for a decade (2007-2017) as Associate Editor of the ACM Transactions on Programming Languages and Systems, was Program Chair for PLDI 2016, and served as co-Program Chair of ASPLOS 2021. He was named an ACM Fellow in 2019.
-
scalene ★ PINNED ⑂
Scalene: a high-performance, high-precision CPU, GPU, and memory profiler for Python
JavaScript ★ 239 1y agoExplain → -
coz ★ PINNED ⑂
Coz: Causal Profiling
C++ ★ 7 10y agoExplain → -
CSrankings ★ PINNED
A web app for ranking computer science departments according to their research output in selective venues, and for finding active faculty across a wide range of areas.
Python ★ 3.1k 44m agoExplain → -
Hoard ★ PINNED
The Hoard Memory Allocator: A Fast, Scalable, and Memory-efficient Malloc for Linux, Windows, and Mac.
C++ ★ 1.2k 12d agoExplain → -
DieHard ★ PINNED
DieHard: An error-resistant memory allocator for Windows, Linux, and Mac OS X
C++ ★ 421 1mo agoExplain → -
Heap-Layers ★ PINNED
Heap Layers: An Extensible Memory Allocation Infrastructure
C++ ★ 410 16d agoExplain → -
Malloc-Implementations
A collection of memory allocators
C ★ 476 9mo agoExplain → -
csconferences
Major CS conference publication stats (including accepted and submitted) by year.
Python ★ 180 5mo agoExplain → -
dthreads
dthreads: Efficient Deterministic Multithreading
C ★ 74 11y agoExplain → -
cheap
Cheap: customized heaps for improved application performance.
C++ ★ 28 3y agoExplain → -
COMPSCI-630
Public notes, etc. for CMPSCI 630, the UMass CS graduate systems course.
TeX ★ 22 3y agoExplain → -
web-programming
web programming course (COMPSCI 326, UMass Amherst)
JavaScript ★ 14 3y agoExplain → -
PC-Resources
Resources for conference program chairs, especially in systems/PL areas of computer science.
Python ★ 12 3y agoExplain → -
COMPSCI590S
Systems for Data Science repo
TeX ★ 12 8y agoExplain → -
hangover
Basic fuzzer for malloc implementations
C++ ★ 11 4y agoExplain → -
Grace
Grace - a replacement for pthreads that enforces sequential semantics (stronger than determinism).
C ★ 10 13y agoExplain → -
PLDI-2016
Documents related to PLDI 2016.
TeX ★ 9 8y agoExplain → -
emeryberger-style
No description.
★ 4 4mo agoExplain → -
ApproximateCounter
A C++ implementation of a scalable approximate counter.
C++ ★ 4 8y agoExplain → -
alloc8
Generic allocation replacement library
C++ ★ 3 9d agoExplain → -
smash
No description.
C++ ★ 2 1d agoExplain → -
emeryberger
No description.
HTML ★ 2 4mo agoExplain → -
publications
Emery Berger publications
TeX ★ 2 7y agoExplain → -
COMPSCI-630-S18-Assignment1
No description.
Rust ★ 2 8y agoExplain → -
opendetex
Automatically exported from code.google.com/p/opendetex
Lex ★ 2 10y agoExplain → -
fragmetrics
Metrics and visualizations for external memory fragmentation
Python ★ 1 10d agoExplain → -
isl
No description.
C ★ 1 8mo agoExplain → -
randomdict ⑂
Python dictionaries with O(1) random element access.
Python ★ 1 1y agoExplain → -
cpython ⑂
The Python programming language
Python ★ 1 1y agoExplain → -
ChatGPT ⑂
Reverse engineered ChatGPT API
★ 1 3y agoExplain → -
vega-lite ⑂
A concise grammar of interactive graphics, built on Vega.
★ 1 3y agoExplain → -
Jack
You don't know Jack.
C++ ★ 1 10y agoExplain → -
stabilizer ⑂
Stabilizer: Rigorous Performance Evaluation
Prolog ★ 1 4y agoExplain → -
bertsort
No description.
C++ ★ 1 9y agoExplain → -
ASPLOS-2021
No description.
Python ★ 1 4y agoExplain → -
wordle-solver
"Finds" the wordle solution of the day
HTML ★ 1 3y agoExplain → -
eon
The Eon programming language
C ★ 1 12y agoExplain → -
tea-lang ⑂
DSL for experimental design and statistical analysis
Python ★ 1 7y agoExplain → -
LeanToPython
Lean 4 to Python transpiler - extracts idiomatic Python from LCNF
Python ★ 0 25d agoExplain → -
slipcover-feedstock ⑂
A conda-smithy repository for slipcover.
★ 0 4mo agoExplain → -
mimalloc ⑂
mimalloc is a compact general purpose allocator with excellent performance.
C ★ 0 8mo agoExplain → -
islpy ⑂
Python wrapper for isl, an integer set library
★ 0 8mo agoExplain → -
malloclib
avoid just using libc: robustly find the allocation library (malloc/free) when interposition is in use
Python ★ 0 8mo agoExplain → -
scalene-feedstock ⑂
A conda-smithy repository for scalene.
★ 0 8mo agoExplain → -
archipelago
archiving
C ★ 0 1y agoExplain → -
upset
random allocation to fuzz addresses (and thus, sets)
C ★ 0 9mo agoExplain → -
printf ⑂
Tiny, fast, non-dependent and fully loaded printf implementation for embedded systems. Extensive test suite passing.
C ★ 0 1y agoExplain → -
scrapy-fix-test-path ⑂
Scrapy, a fast high-level web crawling & scraping framework for Python.
Python ★ 0 1y agoExplain → -
.github ⑂
No description.
★ 0 1y agoExplain → -
botocore ⑂
The low-level, core functionality of boto3 and the AWS CLI.
Python ★ 0 1y agoExplain → -
blog
No description.
★ 0 1y agoExplain → -
aiohttp ⑂
Asynchronous HTTP client/server framework for asyncio and Python
Python ★ 0 2y agoExplain → -
test-repo
No description.
Python ★ 0 3y agoExplain → -
CSStipendRankings ⑂
https://csstipendrankings.org
HTML ★ 0 3y agoExplain → -
optimator
No description.
★ 0 3y agoExplain → -
nu
Nu, what's up with `new`?
C++ ★ 0 3y agoExplain → -
bde ⑂
Basic Development Environment - a set of foundational C++ libraries used at Bloomberg.
C++ ★ 0 3y agoExplain → -
mypy-json-report ⑂
A JSON report of your mypy output that helps you push towards full type coverage of your project.
★ 0 10mo agoExplain → -
JCoz ⑂
JCoz -- The first Java causal profiler
★ 0 3y agoExplain → -
emeryberger.github.io
Emery Berger home page
HTML ★ 0 6y agoExplain → -
conda-forge-pinning-feedstock ⑂
A conda-smithy repository for conda-forge-pinning.
★ 0 3y agoExplain → -
staged-recipes ⑂
A place to submit conda recipes before they become fully fledged conda-forge feedstocks
Python ★ 0 3y agoExplain → -
tablesort ⑂
:arrow_up_down: A small tablesorter in plain JavaScript
★ 0 4y agoExplain → -
mypy ⑂
Optional static typing for Python
★ 0 4y agoExplain → -
homebrew-core ⑂
🍻 Default formulae for the missing package manager for macOS
★ 0 5y agoExplain → -
cheaperJS ⑂
No description.
JavaScript ★ 0 5y agoExplain → -
mstat ⑂
fine-grained, cgroup-based tool for profiling memory usage over time of a process tree
★ 0 5y agoExplain → -
scalene-php
No description.
PHP ★ 0 5y agoExplain → -
systems-lunch
No description.
★ 0 5y agoExplain → -
homebrew-hoard
Homebrew tap for Hoard
Ruby ★ 0 5y agoExplain → -
ResumeReader ⑂
No description.
★ 0 6y agoExplain → -
KIZY ⑂
CS 326 Project Fall 2019
★ 0 6y agoExplain → -
emeryberger-test-326-1
No description.
HTML ★ 0 6y agoExplain → -
smash-project
Compacting allocator starter code
★ 0 6y agoExplain → -
memcached ⑂
memcached development tree
C ★ 0 8y agoExplain → -
leveldb ⑂
LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.
C++ ★ 0 8y agoExplain → -
www ⑂
The mitmproxy website
CSS ★ 0 8y agoExplain → -
Systems-DS-UPC-2017
Systems for Data Science Seminar materials, UPC Summer 2017
★ 0 9y agoExplain → -
online ⑂
Online SIGPLAN resources
TeX ★ 0 10y agoExplain → -
repro-in-cs ⑂
Tracking Responses to the "Reproducibility in Computer Science" Repository (http://reproducibility.cs.arizona.edu/)
TeX ★ 0 12y agoExplain → -
flux
Flux
Java ★ 0 12y agoExplain →
No repos match these filters.