Jump to content

Question

Posted

Hello i made 1 threadpool that check every 1 second and then another one and bla bla

the question is how much a trheadpool that check every 1 second or 0.5 seconds lag the server

or affect the pc?

 

Lets say i have 10 threadpool that all check every 1 second... is it bad?

11 answers to this question

Recommended Posts

  • 0
Posted

From my experience, not at all.

I have got threads that are running far more often and that's not causing me any troubles.

 

Just remember:

- sometimes scheduleAtFixedRate/scheduleAtFixedDelay might be a lot better

- sometimes you can combine 100 threads into 1(for example if you want to give 2 recommendations to every player that was online for at least 2 hours, you can create new thread for each player or you can create 1 thread that would handle them all)

  • 0
Posted

But server machine doesn't

 

What the server machine you uses? Intel Pentium D who was made in far 2005?

 

What doing you threadpool? Calculating 2+2 or something more harder?

  • 0
Posted (edited)

What the server machine you uses? Intel Pentium D who was made in far 2005?

 

What doing you threadpool? Calculating 2+2 or something more harder?

Try to create 2^31-1 empty threads and schedule them to be run every second and let me know if your machine can handle it without any high CPU usage :)

Edited by vampir
  • 0
Posted (edited)

No, 10 Threadpools is nothing, but as say vampir a successful pack tries to reduce amount of generated stuff at its maximum.

 

On aCis, that's how I ended to create general tasks for swimming, pvpflag && shadow weapon recently. If 1000 swimming pvpers holding shadow weapons exist on your server, I use only 3 tasks instead of 3000. And obviously the scenario is absurd, but you got the idea behind it. It saves ressources, no matter what.

 

I also reworked MDT system, instead to create one threadpool per reached timer, there is only one threadpool running forever. Which avoids the generation of objects, and so will delay GC. That rework, plus another, plus another... If you add all those little reworks, it can grow very big.

 

To answer, no, 10 threadpools is almost nothing, but be sure to stop them correctly. And if it's 10 threadpool per player, then try to reduce the amount with tricks such as general tasks or looping task (if it's a counter type).

Edited by Tryskell
  • 0
Posted

Lets say that i made 1 thread that calculate and send message to all players in 1 zone every second 

and one other that is timer on a npc (real time) and i was just thinking if keep making more

it will delay things or something 

  • 0
Posted

Lets say that i made 1 thread that calculate and send message to all players in 1 zone every second 

Do not worry about this, that's not a problem at all.

 

I cannot tell you about Npc Timer because i don't know what you mean

  • 0
Posted (edited)

You only need a single task for such thing, and the task can be even controlled because you can check how much characters are in this area.

 

L2DamageZone is an exemple of zone where a task is created, only if players enter in the zone, and affect all ppl inside this zone. The task is then destroyed if none is inside this zone. The task can easily retrieve possible targets, because zones system store characters entering and exiting zones. Even NPCs.

 

I didn't get the npc "real timer" thing.

Edited by Tryskell

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...