I hope i did not overlook some post that looked into this problem, if so, please point me to the thread where this information would fit in better. Every few Months i set up a server for 2-3 people, We play a lot in a short time, and build alot of machinery. We did that about 5 times now, and i want to share a bit experience about our sessions. Im a big fan of performance, i like it when my server runs on low CPU usage, and i also like my game running at 50 FPS or more, without lag spikes while doing so. Usually, after 3 days or so, our rather compact base makes the game running less smoothly for me, to the point where i dont enjoy playing the world any longer. Because of this, i tried to nailed down both Server CPU consuming machinery, as well as Client-side lag-causes. Lets start with my computer: Im running tekkit on: Windows 7 64 bit Professional 3 GHz Core 2 Duo ATI 4870HD 4GB DDR2 RAM, 800MHz I assign 2 GB Ram for tekkit. On a normal world, Far view, fancy graphics, Fullscreen on a 1680*1050 Screen i get about 90 FPS. The server i use: XP 32 bit, Core 2 Duo 2,16 Ghz 4GB RAM, of which 1.5 is assigned to the tekkit server I made a test world, flat, no mobs, no structures. FPS was about 160 for me, Server idled between 1-4 % CPU usage. I tested with my friend, so there were 2 clients connected in total. Industrialcraft: Large, "Senseless" configurations with alot of solar arrays, power storage blocks, cables with loops, connected to Induction furnaces, rotary macerators, singularity compressors and the high tier extractors(forgot the name) All in all, about 60 Machines, all connected wildly together, hoping to find flaws in the energy code. Results Serverside: The server did not really care. i did not get noticable CPU-comsumption, it was still at the 1-4% CPU usage, maybe a little bit more, but never over 7% usage. Results Clientside: No big impact, though a very huge "Wall-of-Soundlag", which supposedly occurs when leaving the area where the sound of all the running machines occur. Disabling sounds solves the problem. otherwise, all the machines did not really affect the FPS performance, and the 10 FPS lost could be regained by lowering the particle effects emmited by the machinery. All in all, IC seems rather robust, and i dont expect that this was the problem in the past, on our server. Redpower Timers I placed a stack of redpower timers crowded together, running at highest possible speed, all affecting each other(stopping others, getting stopped by others, etc) Results Serverside No noticable impact on server CPU-usage. Results Clientside No huge impact either, framerate dropped from 160 to 150, all in all, didnt seem to be a problem. Red alloy wire vs Wireless transmitters/recievers I placed about a stack of redpower wires in loops, lines, all connected, and let it flicker as fast as a timer could go. On the other hand i had about a stack of wireless recievers, and one transmitter, letting all the recievers flicker likewise. Results Serverside No huge impact from the flickering wire, CPU usage increased about 1-2%, Whereas the wireless setup caused a little more strain, sometimes peaking above the 10% mark. Results Clientside Both setups took about 10-20FPS from my 160FPS starting position, though the wireless setup tended to peak a little bit higher. Redpower Tubes, "Sorting Machine" I placed a long, compact lines of tubes. All in all, maybe 10 Stacks of Tubes, in an area of 2 Chunks. Note here: the tubes themselves did not impact the FPS at all. they dont seem to need more time to render than normal blocks. Now to the interesting part: On one end, i added 8 Filters, with double chests attached to them, powered by a 550ms timer. on the end of the long tube setup, there where 5 chests as possible recievers. I started the timer, and now things started to get really unpleasant. After *about* 10 seconds, i swiched it off, having about 160 stacks of stuff traveling in the system. Results Serverside I really hit a wall here, it seems like all the tracking that has to be done to check where the stuff should go to is a huge problem. from the first moment on, the server Spiked to 50% (which should be one of the cores of the C2D on full strain), the server shouted "Cant keep up" non stop. after *about*10 seconds, with the filters stopping, and those 160 stacks(STACKS - NOT single items of the magnitude) of stuff traveling in the tubes, the server went back to 1-5% values. it seems like the first calculation is done, everything is fine. the tracking seems to cause some heavy strain here. Results Clientside The impact is very noticable. linearly to the amount of stacks traveling in those tubes, the FPS dropped from 160 to values around 40. I came to the conclusion that having a very well thought, and short sorting system is the key here. dont let alot of stuff travel a round. i think this might have been the reason for my FPS-issues after a few days playing on the server, when we finally had an automatic sorting system. Note: it is very likely that the same is true for buildcraft setups, in the past, we used buildcraft pipes, and the FPS issues were alike. Buildcraft fluid piping A pump on an oil well, connected with 2 stacks of gold waterproof pipes, with loops, junctions, finally joining in a 64 blocks high tank from various heights and sides. Results Serverside Not much to say here. to my surprise, it did not really strain the server as much as i feared it would. CPU usage raised from the starting 1-4% to 1-6%. Results Clientside Not much impact here either, maybe 10 FPS at the most. Computercraft Because i use a self written Quarry-like program on my turtles (does not proceed from top to bottom layerwise, but digging holes straight to bedrock instead), i wanted to see how much they strain the system. i placed about 20 of them in different directions, letting them all run with the quarry program. Results Serverside Server did not really care. i excepted much more strain, but it was barely noticable, maybe 1% rise. Results Clientside Not much impact. 5 FPS at the most. Ok, this sums it up for now. I tried my best to think up silly situations where i might bring the coding of the underlying mods to a problem. I do not claim that these tests always hit the spot, but maybe it can help some of you nailing down your personal problems. Personally, i now try to "Outsource" everything i can, usually placing automated machinery far away, outside of the mainbase, outside of the player chunk boundaries, using chunk loading blocks. Edit: Thanks to Alki00 for helping me with the tests. He also corrected me on some tests.
Not surprised. In some independent testing we did on technic, we found that buildcraft (if I remember correctly) was the biggest CPU hog. It would eat up 20-30% of the total being used for minecraft constantly, even if you weren't using or building any BC stuff. The problem we're pretty sure is that it constantly checks everywhere to see if there's BC stuff that needs handling, since it's easier (lazier) to do it that way then a way that causes less of a strain and performance hit.
well, that is disappointing. I thought that the mods in technic all had good and efficient coding for close to everything. unfortunately, BC ruined that rep. if the code sucks that much, it really should be rewritten.
Although not a SMP mod I have found Millinaire to be a massive resource hog, to the point where I've disabled it.
Not an SMP result, but on my SSP world I found that Equivalent exchange machines can really bog down the system. I built a Klein Star charging array, and if more than three stars were charging from stored relay power at once, the system dragged like crazy until it stopped.
I'm a bit dubious about the claims that BC pipes would lag just ask much as the same setup using RP machines and tubes. In practical testing on a server, I found that one setup of BC pipes simply piping scrap from two recyclers into a chest, was a major lag generator. It was nothing more than 2 woodend pipe/redstone engine inputs and a few bits of stone pipe. Probably mostly client lag, but shouldn't we test one against the other in real useage tests. I also say that RP timers can lag, but turning them off adds no penality, unlike redstone engines..
The most laggy shit I have on Tekkit is.... *drumroll* THE NETHER! :d jk It's the goddamn energy condensers...
The RP2/IC2 water mill power plants are probably quite resource hungry as you scale it up. Which means my usage of the same method for keeping combustion engines cool is too I suspect.
From what ive seen so far the lag with pipes and tubes (framerate for the client) is mainly caused simply by the amount of stuff traveling through the system. somehow items, whether lying on the ground, traveling through pipes or tubes in high quantity, seem to be an issue.. i always wondered why it strains the system so much to render a few items simply lying on the ground, or traveling through such systems. i can't test it at the moment, but is it possible with optifine to disable 3d rotation, shadow, and moving of items on the ground? maybe that would make the difference? i simply don't get why those few additional sprites on the screen can bring the system to its knees.
For even more fun, just try mass crystal chests full of item stacks. Each item stack displays three sprites, so a warehouse full of them can be *very* expensive to render.