While my mod does cause load times to be longer, the difference in memory usage is not really related to my mod. Memory in factorio just seems to fluctuate for whatever reason.
For instance, when I first loaded your save, factorio was using 4.8gb memory. After deactivating my mod, it used 5.2gb, which decreased to 3.6gb after about 10mins. I paused the game and went afk for about 10mins, and when I came back, it was using 6.2gb. After about 10 more minutes paused, the memory usage was back at 4.8gb, where it seems to be mostly stable. Since my mod wasn't even activated during this time, I can safely say my mod has minimal impact on factorio's overall memory usage (on average ~200mb).
The longer load times are something I'm aware of, but haven't been able to workaround without losing much of the mod's functionality or causing lots of UPS overhead. The cause mainly stems from me having to cache the turret entities in the 'global' table in order for the ammo upgrading function to work. Otherwise, I have to call surface.find_entities_filtered every time I want to check a turret's inventory, which causes massive overhead.
I've tried many different solutions for this problem. I tried having the information stored in memory but not in the global table, but this caused desyncs in multiplayer. I tried only doing a single surface.find_entities_filtered call per tick and analyzing a single turret each tick, but this still causes quite a bit of overhead and makes the turrets load at a snail's pace, meaning they could be empty for many seconds before the mod could get around to filling them. This caused turrets to often die from biter attacks while they were empty.
Implementing a database system so each entity is only stored in the table once reduced load times by ~70%, but they are still considerably longer than without the mod. For me, the tradeoff is worth it, but I understand for others it's a deal breaker. If any modder has a solution to this problem, I would happily implement it, but I have yet to hear of one.