Extreme modded mining drills, still hurting UPS
Extreme modded mining drills, still hurting UPS
I'm building a gigabase just to push the game to its limits, see what breaks when numbers get huge. Long story short I'm using many cheats (stack size multiplier, bot carry capacity, production modules for rail, infinite ore patches etc) and the console to place ore patches. When UPS becomes a problem I just cheat around it by increasing bot/train capacity or something. So far I'm making the 6 vanilla science packs at 4M per minute at 40UPS.
But no matter what I do I can't find a way around mining drills hurting UPS disproportionately to the number of drills I have.
I was using Bucket Wheel Excavators which worked great for a while but eventually I needed so many they started to hurt UPS. I thought it might be animation of the excavator hurting UPS so I disabled the animation by editing the mod's lua files but it had no effect on UPS at all. I found an even more powerful mining drill (here), I replaced (almost) all the bucket wheel excavators with these which reduced the number of mining entities by a factor of 2x but only reduced the compute time used by mining drills (as report by the debug info) by a factor of 1.2x. Frustrated, I opened up the lua file for the Omega Drills mod and increased the mining speed drastically. Again this reduced the number of drills needed significantly but only slightly reduced the time usage of mining entities. Modules put in the drills have little effect on the ratio of mining rate to time usage.
See screenshots. Only 119 Omega Drills are taking nearly double the compute time of 28k ultra-fast magnetic inserters (from here) plus 8k vanilla stack inserters. Wtf?
What can I do about this? How can I mine 150-200M ore per minute without using more than 2-3ms per frame? I don't care how cheaty or OP the solution is, assume I have unlimited space and electricity, hit me with the crazy ideas.
My current plan if I don't come up with anything better is to give up on mining drills altogether and use infinite chests to produce ore in huge quantities.
But no matter what I do I can't find a way around mining drills hurting UPS disproportionately to the number of drills I have.
I was using Bucket Wheel Excavators which worked great for a while but eventually I needed so many they started to hurt UPS. I thought it might be animation of the excavator hurting UPS so I disabled the animation by editing the mod's lua files but it had no effect on UPS at all. I found an even more powerful mining drill (here), I replaced (almost) all the bucket wheel excavators with these which reduced the number of mining entities by a factor of 2x but only reduced the compute time used by mining drills (as report by the debug info) by a factor of 1.2x. Frustrated, I opened up the lua file for the Omega Drills mod and increased the mining speed drastically. Again this reduced the number of drills needed significantly but only slightly reduced the time usage of mining entities. Modules put in the drills have little effect on the ratio of mining rate to time usage.
See screenshots. Only 119 Omega Drills are taking nearly double the compute time of 28k ultra-fast magnetic inserters (from here) plus 8k vanilla stack inserters. Wtf?
What can I do about this? How can I mine 150-200M ore per minute without using more than 2-3ms per frame? I don't care how cheaty or OP the solution is, assume I have unlimited space and electricity, hit me with the crazy ideas.
My current plan if I don't come up with anything better is to give up on mining drills altogether and use infinite chests to produce ore in huge quantities.
- Attachments
-
- factorio 2021-03-19 20-13-29-02.jpg (246.87 KiB) Viewed 5487 times
-
- factorio 2021-03-19 20-09-54-91.jpg (25.96 KiB) Viewed 5487 times
-
- factorio 2021-03-19 20-08-58-19.jpg (215.74 KiB) Viewed 5487 times
Last edited by Ormy on Sat Mar 20, 2021 10:16 am, edited 1 time in total.
Re: Extreme modded mining drills, still hurting UPS
At a thought, I wonder if all the time is spent because every drill needs to iterate over the ore patch every time it ticks. Before it mines, it needs to go through all the resource spots it touches and figure out which one to work on (so it can determine if it needs fluid prior to starting). Once it's done, it needs to update that spot, and then figure it out again. With mining productivity it might need to do it again when the productivity ticks over (it might just give an extra of whatever it's mining at the time).
If they have a huge mining radius, I'd try lowering it down to just their own footprint and see what difference that makes in update speed. If each ore drill is touching 25x25 tiles of ore, cutting it down to 15x15 (guessing their size from the screenshot) will cut the number of tiles to just above a third.
If they have a huge mining radius, I'd try lowering it down to just their own footprint and see what difference that makes in update speed. If each ore drill is touching 25x25 tiles of ore, cutting it down to 15x15 (guessing their size from the screenshot) will cut the number of tiles to just above a third.
Re: Extreme modded mining drills, still hurting UPS
Awesome idea. Very much appreciated.Silari wrote: ↑Fri Mar 19, 2021 8:53 pm At a thought, I wonder if all the time is spent because every drill needs to iterate over the ore patch every time it ticks. Before it mines, it needs to go through all the resource spots it touches and figure out which one to work on (so it can determine if it needs fluid prior to starting). Once it's done, it needs to update that spot, and then figure it out again. With mining productivity it might need to do it again when the productivity ticks over (it might just give an extra of whatever it's mining at the time).
If they have a huge mining radius, I'd try lowering it down to just their own footprint and see what difference that makes in update speed. If each ore drill is touching 25x25 tiles of ore, cutting it down to 15x15 (guessing their size from the screenshot) will cut the number of tiles to just above a third.
I gave it a go, I reduced the mining area to 1x1. It did reduce the time usage of mining drills but not as much as I was hoping. Time usage went down from 9ms to about 6.5-7ms.
- eradicator
- Smart Inserter
- Posts: 5211
- Joined: Tue Jul 12, 2016 9:03 am
- Contact:
Re: Extreme modded mining drills, still hurting UPS
That would've been my first guess too. Sad that it's not sufficient.
If you care about the production statistics, how about assemblers that "produce" ore for free? Would need loader/inserter but you only need one assembler per
Author of: Belt Planner, Hand Crank Generator, Screenshot Maker, /sudo and more.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
Re: Extreme modded mining drills, still hurting UPS
A fairly significant difference still. Wonder if using infinite yield tiles would change the time, especially after the tiles had hit min yield and thus wouldn't need to be reduced anymore. Seems less likely to be something that'd make a meaningful impact though.
Re: Extreme modded mining drills, still hurting UPS
I have 1800 vanilla drills and all together they are 0.2 to 0.3 ms. Perhaps the issue is the modding?
Re: Extreme modded mining drills, still hurting UPS
I don't care about the production statistics for the ore (I can still see a correct consumption statistic for the ore even if I did care), but that's an interesting idea. I already have modded assemblers and furnaces in their hundreds producing items at a rate of many millions per minute with far less UPS impact (courtesy of Schall's machine scaling and recipe scaling and ulta-fast magnetic inserters mods) compared with mining drills producing similar amounts . Furnaces and assemblers both under 1ms in my original screenshot while producing over 100M copper plate, 150M iron plate, 200M copper cable, 75M electronic circuit every minute. Therefore it stands to reason that the assemblers could be given a modded recipe that produces ore with zero input requirement and that would solve my problem completely. I would also have some electricity cost to producing the ore vs infinite chests. Is there a mod that does this already?eradicator wrote: ↑Fri Mar 19, 2021 9:30 pm If you care about the production statistics, how about assemblers that "produce" ore for free? ...
Makes me want to see an actual measurement of the efficiency of infinity chests though.
I'll make a copy of my save under a different name tomorrow and give it a go with the infinity chests just to see what happens. I've used a myriad of cheats on this save but infinity chests are one thing I sought to avoid from the beginning, I'm happy to do it now but only after I'm reasonably satisfied that I've exhausted all other options.
Re: Extreme modded mining drills, still hurting UPS
About 200K altogether, which given your scale is probably nowhere near what you're putting out. But the issue appears to be the ore or interactions with the ore field, not the number of drills.
Re: Extreme modded mining drills, still hurting UPS
The output is the much more important number than number of drills most likely. Every time it needs to output ore it needs to go through the ore fields AND find out if it has a place to put the ore. I'd imagine that takes a lot more time than the checking energy consumption and updating the production % bits.
Which reminds me - Ormy are you outputting to belts or to something with an inventory, like a chest? Might be worth playing with that to see if it makes a difference - MiningDrill time probably includes the time it spends seeing if it's output is blocked and outputting it's result. Not sure how changing stack size will affect that, but I do recall seeing stuff that having more slots in an inventory can drastically increase the time it takes to interact with that inventory.
Re: Extreme modded mining drills, still hurting UPS
If the drills are outputting to something different than all the assemblers, that might make a difference, but one things the drills have to deal with that the assemblers don't is the resource field underneath them.
Re: Extreme modded mining drills, still hurting UPS
people here are only guessing because you haven't provided any save file.
Re: Extreme modded mining drills, still hurting UPS
Yes that's exactly my point.
Each omega drill outputs directly into a single vanilla passive provider chest. I could try with belts but I'm trying to avoid them generally in this build. Another idea I considered is to have the drill output to a carefully placed cargo wagon then inserters transfer from the wagon to passive provider chests. The assemblers and furnaces output via ultra-fast magnetic inserters to vanilla passive provider or logistic storage chests. I'll give it a go and report back.Silari wrote: ↑Sat Mar 20, 2021 4:58 am Which reminds me - Ormy are you outputting to belts or to something with an inventory, like a chest? Might be worth playing with that to see if it makes a difference - MiningDrill time probably includes the time it spends seeing if it's output is blocked and outputting it's result. Not sure how changing stack size will affect that, but I do recall seeing stuff that having more slots in an inventory can drastically increase the time it takes to interact with that inventory.
My apologies I didn't think a savefile would be much help over and above the info in the screenshots. I have attached it here. Be aware that a few things might not work properly because when I found a mod that did what I wanted but not quite enough I have increased some of the values in the mod's lua files. E.g. for the omega drills mod I have increase base mining speed to 200, increased number of module slots to 6, reduced mining area to 1x1, I have edited Noxy's stack size multiplier mod to increase logistic bot capacity to 5k items, I think those are the main changes. Also there are a few mods necessary for the factory to function that have not been updated by their owners in a while, they still work fine but I had to edit the info.json to add "factorio version 1.1" to make them load.
For these reasons the savefile might not be much use but I have attached it anyway. If you wanted to replicate these circumstances it might be easier to just go into sandbox mode with the omega drills mod and slap down a few dozen of them.
Btw this base is still very much a work in progress so please don't judge me for the mess haha.
Thank you so much to everyone that has replied so far, all your help is very much appreciated.
- Attachments
-
- Base6b.zip
- (24.18 MiB) Downloaded 78 times
Re: Extreme modded mining drills, still hurting UPS
doesn't work for me, i have more than 400 drills using less than 1ms update time with infinite yield and Bob's mods.
Re: Extreme modded mining drills, still hurting UPS
How much ore per minute are you producing though? As has been mentioned it isn't the number of drills that is causing an issue, the total amount of ore mined per minute.
Re: Extreme modded mining drills, still hurting UPS
I played around with the save a bit and after making the modifications (but leaving out the mods not on the mod portal) I got the same relatively very high MiningDrill usage. Tried tweaking a few things (fewer slots in passive providers, stack size multiplier) but only things that reduced the time they took was to make them mine less. I think it just might be limits of the engine for the time they take.
Re: Extreme modded mining drills, still hurting UPS
Yes this is what I suspected myself but I feel much better now I have some second opinions.
I am trying it out with infinite chests instead of mining drills and it seems to be working in terms of fixing the UPS hit. The only thing that bothers me slightly is the lack of any electricity usage in producing the ore.
Thanks again for your time helping out!
Re: Extreme modded mining drills, still hurting UPS
infinity chests are worse than mining drills. i think you should try for high productivity levels instead.
- eradicator
- Smart Inserter
- Posts: 5211
- Joined: Tue Jul 12, 2016 9:03 am
- Contact:
Re: Extreme modded mining drills, still hurting UPS
According to the mod description "ore without an ore patch" I assume that some of the "Quarry $something" named mods work like that. https://mods.factorio.com/query/quarry?version=anyOrmy wrote: ↑Sat Mar 20, 2021 1:37 am Therefore it stands to reason that the assemblers could be given a modded recipe that produces ore with zero input requirement and that would solve my problem completely. I would also have some electricity cost to producing the ore vs infinite chests. Is there a mod that does this already?
If it's an actual engine limit it might be worth a shot to post a link to this thead on the performance optimization thead. Probably out of scope but who knows...
Author of: Belt Planner, Hand Crank Generator, Screenshot Maker, /sudo and more.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
Re: Extreme modded mining drills, still hurting UPS
Deep Quarry is hopelessly outdated by now.eradicator wrote: ↑Sun Mar 21, 2021 1:18 am According to the mod description "ore without an ore patch" I assume that some of the "Quarry $something" named mods work like that. https://mods.factorio.com/query/quarry?version=any
If it's an actual engine limit it might be worth a shot to post a link to this thead on the performance optimization thead. Probably out of scope but who knows...
I rewrote the entire thing for percentage based recipes with 0.15: https://mods.factorio.com/mod/DeepMine
My Mods: mods.factorio.com