<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Performance on Indented Block</title><link>https://indentedblock.com/tags/performance/</link><description>Recent content in Performance on Indented Block</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 31 Aug 2026 08:57:23 -0400</lastBuildDate><atom:link href="https://indentedblock.com/tags/performance/index.xml" rel="self" type="application/rss+xml"/><item><title>asyncio vs Threading vs Multiprocessing: Picking the Right Concurrency Model</title><link>https://indentedblock.com/posts/concurrency-comparison/</link><pubDate>Mon, 31 Aug 2026 08:57:23 -0400</pubDate><guid>https://indentedblock.com/posts/concurrency-comparison/</guid><description>Python gives you three different ways to do more than one thing at once. Here&amp;#39;s how they actually differ, and a decision framework for picking the right one instead of guessing.</description></item><item><title>Generators and Iterators: Lazy Evaluation in Python</title><link>https://indentedblock.com/posts/python-generators/</link><pubDate>Mon, 24 Aug 2026 08:54:32 -0400</pubDate><guid>https://indentedblock.com/posts/python-generators/</guid><description>How Python generators and iterators work under the hood, why lazy evaluation saves memory and time, and real patterns for streaming data pipelines.</description></item></channel></rss>