Page 1 of 1

Lag is over

Posted: Wed Apr 23, 2014 9:05 am
by fleure
http://www.byond.com/forum/?post=1549601
I've made some major changes to address these issues in 506.1243 for most object types. Hopefully this will result in a speed improvement for some games. I suspect that the degree of improvement will depend greatly on the game's "action quotient", so some like SS13 might see a bigger boost than a typical RPG, but it's really hard to be sure where to expect the most impact.
I'm currently tracking a 600% improvement over the last incremental beta. This isn't a small fix like you implied, it's absolutely major.
Image

Re: Lag is over

Posted: Wed Apr 23, 2014 9:46 am
by Jalleo
Quick go to that beta before the huge bugs of server melting proportions. appear!

Re: Lag is over

Posted: Wed Apr 23, 2014 12:21 pm
by Remie Richards
Awesome! Now let's cram SS13 with more stuff so that the lag returns to the levels were used to!

Re: Lag is over

Posted: Wed Apr 23, 2014 12:44 pm
by Psyentific
You say the lag is over?
You are a LIAR!

Re: Lag is over

Posted: Wed Apr 23, 2014 1:40 pm
by Bluespace
Image

Re: Lag is over

Posted: Wed Apr 23, 2014 1:57 pm
by Numbers
Image

I give this Ron Paul stamp of approval.

Re: Lag is over

Posted: Wed Apr 23, 2014 2:34 pm
by Gadd
When will we see a difference?

Re: Lag is over

Posted: Wed Apr 23, 2014 2:49 pm
by bandit
Image

Re: Lag is over

Posted: Wed Apr 23, 2014 3:35 pm
by Wild Bill
600% boost in object allocation speed is good.
Especially like he said with strings and lists. Good news.

Also:
Interestingly strings were part of your stress test's running time because of the \ref macro you used.
Spoiler:
ACTUAL POINTERS WHEN

Re: Lag is over

Posted: Wed Apr 23, 2014 4:36 pm
by MrStonedOne
it used to take 21μs (without deletion bullshit slowing it down) to create a obj or mob or well anything.


it now takes 3.4μs to create objects and it doesn't slow down when you've recently deleted a bunch of objects.

(note, this is based on his tests on his machine)

Also:
Automatic garbage collection is the only answer. If you are using the del keyword, you are going to murder your performance. Upon reaching the millions of objects, deleting even a single object can begin to take a very, very long time. Simply removing references to the object when it is no longer required is far better, and will not result in significant CPU consumption, whilst still releasing the object for reuse.
We should fix up the code where we can to take this into account.

Re: Lag is over

Posted: Wed Apr 23, 2014 5:12 pm
by fleure
It sounds like explosions and loose singularities could be a lot easier on the server performance, then?

Re: Lag is over

Posted: Wed Apr 23, 2014 5:19 pm
by Durkel
I've been lagging for so long I don't know what I'm going to do when it's gone. Lag has been with me since the beginning. it's like saying good bye to a old friend who now does crack and steals your wallet.

Re: Lag is over

Posted: Wed Apr 23, 2014 5:38 pm
by Psyentific
Durkel wrote:I've been lagging for so long I don't know what I'm going to do when it's gone. Lag has been with me since the beginning. it's like saying good bye to a old friend who now does crack and steals your wallet.
It's just not SS13 without the lag. I refuse to believe that the lag is gone.

Re: Lag is over

Posted: Wed Apr 23, 2014 5:45 pm
by MrStonedOne
fleure wrote:It sounds like explosions and loose singularities could be a lot easier on the server performance, then?

On my laptop, with a 1st gen intel duo with ht, doing a bomb cap bomb at lowest bomb cap, was instant.

no lag, no nothing.

upping the bomb cap to max, it took about 2 or 3 minutes of no response, followed by it running with less lag than we normally see when the singlo is beaconed and loose.

Now, this was with one person connected, who was ghosted (me).

No idea how it would run on sibyl with 60 users on.

Note: first bomb was in old ai core location on box right where the ai would be (i haven't updated in a bit)

second bomb was 3 squares up from the doors just above bridge that lead to brig.

Re: Lag is over

Posted: Wed Apr 23, 2014 5:58 pm
by MrStonedOne
More testing:
ADMIN LOG: MrStonedOne/(Izaiah Dimeling) changed the bomb cap to 7, 14, 28
ADMIN LOG: Explosion with size (7, 14, 28, 0) in area Bridge (113,138,1)

Code: Select all

                                                  Profile results (total time)
Proc Name                                                                         Self CPU    Total CPU    Real Time        Calls
-----------------------------------------------------------------------------    ---------    ---------    ---------    ---------
/datum/effect/effect/system/spark_spread/start                                       0.042        0.110      800.964          126
/datum/effect/effect/system/harmless_smoke_spread/start                              0.000        0.006       25.308            1
/client/proc/drop_bomb                                                               0.000        0.000       23.180            1
/proc/explosion                                                                      0.056        1.716       12.362            4
/datum/effect/system/expl_particles/proc/start                                       0.000        0.014        6.480            1
/obj/machinery/door/airlock/open                                                     0.000        0.002        6.103            5
/datum/controller/game_controller/proc/process_machines                              0.908        4.881        4.881           64
/mob/living/simple_animal/corgi/Ian/Life                                             0.004        0.004        3.215           65
/turf/Enter                                                                          0.050        0.077        3.201         3723
/obj/machinery/door/proc/open                                                        0.001        0.002        3.125            3
/obj/machinery/door/airlock/open                                                     0.000        0.002        3.125            3
/obj/machinery/door/airlock/proc/autoclose                                           0.000        0.000        2.978            4
/obj/machinery/door/airlock/close                                                    0.000        0.000        2.978            4
/obj/machinery/door/proc/close                                                       0.000        0.000        2.978            3
/obj/machinery/door/airlock/close                                                    0.000        0.000        2.978            3
/mob/living/say                                                                      0.004        0.006        2.952            2
/proc/flick_overlay                                                                  0.000        0.000        2.946            2
/proc/powernet_nextlink                                                              0.052        2.770        2.770          900
/obj/machinery/bot/secbot/Bump                                                       0.000        0.000        1.977            4
/obj/machinery/proc/auto_use_power                                                   0.375        1.810        1.820       114371
/turf/Entered                                                                        1.760        1.786        1.792         3075
/turf/simulated/Entered                                                              0.006        1.729        1.729         2771
/turf/New                                                                            0.009        1.628        1.628          212
/proc/qdel                                                                           0.011        1.281        1.282         1333
/datum/controller/air_system/proc/process_air                                        0.001        1.223        1.223           65
/datum/controller/air_system/proc/process                                            0.000        1.223        1.223           65
/datum/controller/air_system/proc/process_active_turfs                               0.030        1.183        1.184           65
/turf/simulated/proc/process_cell                                                    0.318        1.154        1.157        11813
/atom/movable/Bump                                                                   0.003        0.009        1.155         2397
/obj/machinery/door/Bumped                                                           0.000        0.004        1.150           35
/obj/machinery/door/proc/bumpopen                                                    0.000        0.004        1.150           11
/obj/machinery/door/airlock/bumpopen                                                 0.000        0.004        1.150           11
/obj/machinery/door/airlock/bumpopen                                                 0.000        0.004        1.150           11
/obj/machinery/proc/use_power                                                        0.487        1.079        1.098       148632
/turf/simulated/wall/Del                                                             0.825        0.935        0.935          227
/atom/movable/Del                                                                    0.877        0.881        0.883         1835
/obj/machinery/turret/proc/die                                                       0.000        0.001        0.869            2
/obj/machinery/turret/ex_act                                                         0.000        0.001        0.869            8
/datum/controller/game_controller/proc/process_mobs                                  0.028        0.726        0.726           65
/obj/machinery/proc/powered                                                          0.421        0.653        0.670       114657
/turf/simulated/proc/share_air                                                       0.073        0.498        0.501        29569
/datum/light_source/proc/check                                                       0.329        0.469        0.495       135294
/obj/machinery/ex_act                                                                0.002        0.476        0.476          720
/proc/get_area                                                                       0.441        0.449        0.471       152040
/obj/machinery/power/apc/process                                                     0.273        0.461        0.461         7793
Took about 5~ seconds to explode, followed by only a small amount of lag while moving for 20 seconds, followed by mostly smooth operation.

Re: Lag is over

Posted: Wed Apr 23, 2014 6:50 pm
by MisterPerson
Do some tests with a pre-qdel() version of /tg/station with the current BYOND beta vs same /tg/station on the previous BYOND beta.
Just curious.

Re: Lag is over

Posted: Thu Apr 24, 2014 2:10 am
by Wild Bill
Spoiler:
new != del

Re: Lag is over

Posted: Thu Apr 24, 2014 2:30 am
by MisterPerson
Spoiler:
I'm trying to prove a point that these revolutions are because of GC and not from the current version.
You may now lower your expectations. /vg/ says there's been no change. Why am I not surprised?