It seems that different sources claim very different RAM consumption for having whole BGP routing table information in RAM and having the router to correctly route the traffic.
According to Calculating Cisco router memory requirements for full BGP feeds ballpark figure seems to be between 150 MB and 500 MB for 500k routes. On the other hand, Cisco documentation tells that a router requires 8 GB to support 1 million routes: https://www.cisco.com/c/en/us/products/collateral/routers/asr-1000-series-aggregation-services-routers/data_sheet_c78-441072.html
How much RAM does one route actually need on average? The Cisco numbers suggest that one route would need approximately 8 KB (including OS overhead) which doesn't seem sensible number to me. You can store the information about one route much more compact than that!
Are the hard memory requirements actually caused by the algorithm used to hold the whole table in the RAM where you can have lots of memory overhead for different indexes and other auxillary data designed to speed up the realtime processing?
I'm specifically interested in IPv4 implementations but additional info about IPv6 would be interesting, too.