Top all-time · #1890
Artem Golubin
Personal blog · rushter.comprogrammingsystems
Artem Golubin's personal blog at rushter.com covers programming and systems. Since 2017, 41 different Hacker News readers have linked it 71 times, most often “Garbage collection in Python: things you need to know – Artem Golubin”. It is still writing: the last post was on 2026-10-16, and you can follow it by feed.
Home page of Artem Golubin
Most-linked posts?
- Garbage collection in Python: things you need to know – Artem Golubin5 people · 5 mentions · first linked 2017-10-17
- You probably don't need Oh My Zsh3 people · 3 mentions · first linked 2026-01-09
- Python's binary wheels and supply chain attacks3 people · 3 mentions · first linked 2026-10-17
- How Python saves memory when storing strings3 people · 3 mentions · first linked 2019-01-11
- How mass IP port scanner works3 people · 3 mentions · first linked 2022-05-03
- The rise of malicious repositories on GitHub3 people · 3 mentions · first linked 2026-03-15
- On Code Isolation in Python3 people · 3 mentions · first linked 2020-10-27
- Optimization tricks in Python: lists and tuples3 people · 3 mentions · first linked 2018-06-14
- ClickHouse Handles Strings2 people · 2 mentions · first linked 2026-01-16
- Writing a simple SOCKS server in Python2 people · 2 mentions · first linked 2018-04-24
What Hacker News says?
Author of the article here. I don't think system allocators are clever enough to process and allocate 100-500k of very small objects each minute when Python is performing something very intensive. It's a pretty standard way to speedup allocation for dynamic languages. Game developers use similar techniques as well. I have some stats on Python's allocator: https://rushter.com/blog/python-object-allocation-statistics.…
Comment linking /blog/python-object-allocation-statistics/
on “Memory Management in Python”Submitted Memory Management in Python as a story · 265 points
HN discussionThis article is a solid start: https://rushter.com/blog/numba-cython-python-optimization/
Comment linking /blog/numba-cython-python-optimization/
on “Python consumes a lot of memory – how to reduce the size of objects?”Submitted How I'm using Helix editor as a story · 216 points
HN discussionIn my experience selectolax is about 10x faster than lxml, and keeps the familiar CSS selector API: https://rushter.com/blog/python-fast-html-parser/
Comment linking /blog/python-fast-html-parser/
on “Mastering Web Scraping in Python: Crawling from Scratch”Submitted How to track and display profile views on GitHub as a story · 208 points
HN discussionFor starters, just adding Cython and/or Numba to the code should introduce great improvements. https://rushter.com/blog/numba-cython-python-optimization/
Comment linking /blog/numba-cython-python-optimization/
on “Goodbye Python, Hello Go”Submitted Optimization tricks in Python: lists and tuples as a story · 131 points
HN discussion> Then I guess using the id of the tuples to show that they are using the same object doesn't exactly prove the point Without the `del a`, it does, because they both have active references. If they were unique objects, we'd see a unique ID for `b` as long as a reference to `a` is active. > Strings seem to behave like tuples. When I delete a string and create a new one it creates a new object with a new address.... u…
Comment linking /blog/python-lists-and-tuples/
on “Optimization tricks in Python: lists and tuples”Submitted Python's GIL implemented in pure Python as a story · 127 points
HN discussion> what sort of "everything" do you have in mind? I’ll answer in two parts. First, in my original claim: > not everything is necessarily backed by the same kind of heap-allocated memory object. the emphasized part is important. Not all PyObjects are equivalent. Most things in Python are indeed PyObjects of some stripe, but they act very, very differently in some common and performance-sensitive situations. The optimi…
Comment linking /blog/python-lists-and-tuples/
on “How often does Python allocate?”Submitted How Numba and Cython speed up Python code as a story · 112 points
HN discussionJust as a note, the way that Python stores the items isn't always 4 bytes per char, it depends on the actual string contents. I think that https://rushter.com/blog/python-strings-and-memory/ is a nice reference on that.
Comment linking /blog/python-strings-and-memory/
on “There are many ways to fail to read a file in a C program”Submitted Hash tables in Go and advantage of self-hosted compilers as a story · 62 points
HN discussionThe design decisions of the Python language (arbitrary length integers for example) lead Python to just be SLOW. It's much slower than Perl. Don't believe me? Look at how numbers are stored: https://rushter.com/blog/python-integer-implementation/ But it doesn't really matter. Computers increase in speed over time. Libraries allow speed sensitive sections to use more sane data types. As you pointed out, the Perl lang…
Comment linking /blog/python-integer-implementation/
on “Ask HN:Why is Perl so dwarfed in data science by Python?”Submitted You probably don't need Oh My Zsh as a story · 13 points
HN discussionHow it works: * CF worker on a subdomain that handles POST requests. Basically, a JS function that handles incoming requests. * It stores comments in CF KV and sends me a copy to telegram * All I need to do is copy it to Markdown (can be automated, but I manually approve the comments in case of spam) * In Markdown, I'm using frontmatter to store arbitrary JSON data * To avoid automated spam, I have a few tricks: do…
Comment linking /blog/zsh-shell/
on “I added a Bluesky comment section to my blog”Submitted Python's binary wheels and supply chain attacks as a story · 9 points
HN discussionIf you want to go really deep, I would recommend reading some blogs about Python internals: https://tenthousandmeters.com/tag/cpython/ https://rushter.com/blog/tags/cpython/ https://eli.thegreenplace.net/tag/python-internals https://realpython.com/cpython-source-code-guide/ I'm not aware of any good books about Python's internals.
Comment linking /blog/tags/cpython/
on “Ask HN: Which book would you recommend for learning Python in detail?”Submitted How to turn an ordinary gzip archive into a database as a story · 6 points
HN discussionClickHouse also supports a lot of data sources and has a local mode where you just use a single binary with local-only access. Coincidentally, I wrote an article today on how I use it for similar scenarios. It can fetch from S3, multiple databases at once, and so on. And you get all the benefits of a database when you need to join or postprocess data from multiple sources. https://rushter.com/blog/clickhouse-data-pr…
Comment linking /blog/clickhouse-data-processing/
on “databow: a Rust CLI to query any database with an ADBC driver”Submitted Astroturfing on Reddit and the Dead Internet as a story · 4 points
HN discussion> Strings >The rule of thumb for strings is the core string object takes 41 bytes. Each additional character is 1 byte. That's misleading. There are three types of strings in Python (1, 2 and 4 bytes). https://rushter.com/blog/python-strings-and-memory/
Comment linking /blog/python-strings-and-memory/
on “Python Numbers Every Programmer Should Know”Submitted You probably don't need Oh My Zsh as a story · 4 points
HN discussionhttps://rushter.com Most of my posts are about Python's internals and some security stuff
Comment linking /
on “Ask HN: Could you share your personal blog here?”Submitted Tracking malicious code execution in Python as a story · 4 points
HN discussionApparently, Python split the difference and uses reference counting alongside garbage collection: https://rushter.com/blog/python-garbage-collector/ However: > I'd say that Borrow Checker is still manual memory management, except the compiler writes the free() for you. And: > #4: purely declarative languages and such is going to be garbage collected in practice. My point is to catalog the different ways programmers…
Comment linking /blog/python-garbage-collector/
on “What do you mean by “Memory Management”?”Submitted Public SSH keys can leak your private infrastructure as a story · 4 points
HN discussionI'm not sure about the article, but the blazingly-fast IP scanner sounds a lot like Masscan: https://github.com/robertdavidgraham/masscan It can scan the entire Internet in 5 minutes and has received a lot of press. https://rushter.com/blog/how-masscan-works/ is one of many articles about how it works.
Comment linking /blog/how-masscan-works/
on “Ask HN: Looking for an Old Article”Submitted Python object allocation statistics as a story · 4 points
HN discussion