+-+-

+-User

Welcome, Guest.
Please login or register.
 
 
 
Forgot your password?

+-Stats

Members
Total Members: 281
Latest: [FUN] JPS-1
New This Month: 0
New This Week: 0
New Today: 0
Stats
Total Posts: 22224
Total Topics: 7142
Most Online Today: 73
Most Online Ever: 249
(November 01, 2009, 02:50:51 am)
Users Online
Members: 0
Guests: 56
Total: 56

Fixing Lag: Picking Up Low Hanging Fruit

Started by CCP, September 13, 2010, 08:01:48 pm

« previous - next »

0 Members and 1 Guest are viewing this topic.

CCP

Fixing Lag: Picking Up Low Hanging Fruit
13 September 2010, 4:51 pm



Greetings folks,

Just wanted to toss you folks a quick nugget of what we in the lag-fighting force have been up to lately.  This report is for one inefficiency that was found while doing thin-client testing; the result of which has been live on Tranquility for a while now.

Hope you enjoy,

~CCP Veritas



 Player Module Repeat Optimization (8.5 Awesomes) The Problem:Thin client tests showed that modest numbers of clients shooting civilian lasers caused unreasonable CPU usage.  Since civilian lasers don't use ammo, this removed inventory as a cause of load, and left what should be a very simple damage calculation.  Analysis showed that most of this CPU time was spent determining if the module was in the process of reloading whenever it was repeated.The Hypothesis:The query to tell if a module is repeating required setting up a full ship object then querying it.  The data needed to fulfill that query, however, is contained in a separate ship cache object which means having a full ship object is not required to perform this query.  Removing the instantiation of that object and going directly to the cache instead should give significant improvement.The Test:Setup:  50 Maelstroms with 8 Civilian Gatling Pulse Lasers, 6 Civilian Shield Booster I's, and 5 Civilian Armor Repairer's at close range, firing all guns and repeating all modules, for a total of 950 effects being managed.  The flag to turn on the optimization was turned on without change to the clients' activities.



 

A drop from approx 82% CPU to approx 35%, a 57% improvement

This optimization should have very wide impact, as players using modules is a very common thing.  Estimated performance gain on a real-world Sol (servers that run game logic) is somewhere in the 5% ballpark, as player module repeating takes around 8-12% of current CPU slices.TQ Impact:On August 24th, I tested the waters turning this optimization on a Sol that was very busy managing missioners.  The result was encouraging:



 

The optimization was turned on cluster-wide during downtime on August 30th, and the trend appears to follow expectation, around a 5% drop in general CPU usage:



 Conclusion and Future Work:For such an easy fix, this had a substantial impact, thus earning the highest Awesomeness rating to date.  Work should continue in finding the performance bottlenecks of this extremely basic test case, as it represents the foundation of the fight mechanics in EVE.

 

Source: eveonline.com | devBlog

+-Recent Topics

Patch Notes - Version 21.06 by CCP
April 23, 2024, 08:28:13 pm

Patch Notes - Version 21.06 by CCP
April 23, 2024, 12:00:25 pm

Patch Notes - Version 21.06 by CCP
April 17, 2024, 07:11:34 pm

Patch Notes - Version 21.06 by CCP
April 17, 2024, 01:54:38 pm

Patch Notes - Version 21.06 by CCP
April 17, 2024, 05:39:33 am

Patch Notes - Version 21.06 by CCP
April 16, 2024, 09:48:50 pm

Patch Notes - Version 21.06 by CCP
April 16, 2024, 01:45:53 pm

Patch Notes - Version 21.06 by CCP
April 09, 2024, 07:48:07 pm

Patch Notes - Version 21.06 by CCP
April 09, 2024, 01:08:22 pm

Patch Notes - Version 21.06 by CCP
April 05, 2024, 01:24:07 pm

Powered by EzPortal