libcurl's memory usage has improved over five years despite adding features. Comparing current development to version 7.75.0, key structs show mixed changes: the multi handle grew from 416 to 816 bytes, the easy handle from 5272 to 5352 bytes, while connectdata shrank from 1472 to 912 bytes. For 10 parallel transfers with 20 connections, total memory decreased by 10,000 bytes. A single 512MB HTTP download now uses 133,856 bytes across 107 allocations (1.6% more memory, 11% more allocations than five years ago). The project added test case 3214 to prevent accidental struct size growth by setting upper limits on fifteen important structs.
Table of contents
Memory useA line in the sandDo we degrade?struct sizesDownloading a single HTTP 512MB fileVisualizedConclusion1 Comment
Sort: