show times
Function Name Min Max Last
------------------------------------------------------
one_room_reset 0.000001 0.077849 0.000007
Processing input 0.000003 0.023855 0.000061
Setting socket sets 0.000000 0.000114 0.000000
Processing player input 0.000000 0.000571 0.000001
Processing player inputB 0.000001 0.000521 0.000004
Processing player output 0.000000 0.012360 0.000001
ENTIRE_GAME_LOOP 0.001477 7.458982 0.335458
entering nanny 0.000006 0.282088 0.182060
PULSE_PLAYER_REGEN 0.000007 0.760189 0.000457
save_char_db 0.011066 0.112322 0.064748
Processing player input-after 0.000009 1.756860 0.000366
extract_char_1 0.001777 0.004514 0.002189
extract_char_2 0.000000 0.000014 0.000001
extract_char_3 0.000000 0.001543 0.000001
extract_char_4 0.000000 0.025002 0.000000
extract_char_5 0.000000 0.000113 0.000000
extract_char_6 0.001590 0.002702 0.002032
extract_char_7 0.000000 0.001219 0.000003
extract_char_8 0.000000 0.000067 0.000000
extract_char_9 0.000000 0.001477 0.000000
extract_char_10 0.000000 0.000034 0.000001
extract_char_11 0.002996 0.029861 0.003608
extract_char_12 0.000003 0.000070 0.000005
extract_char_13 0.000000 0.000128 0.000000
extract_char_14 0.000000 0.001911 0.000200
extract_char_15 0.000000 0.083666 0.000001
PULSE_VIOLENCE 0.007984 0.703329 0.013374
PULSE_AUCTION 0.000013 0.085565 0.000436
PULSE_ZONE 0.000355 0.215551 0.032732
PULSE_MOBILE 0.194822 7.041676 0.277037
PULSE_UTILITY 0.005650 0.039585 0.016326
PULSE_UPDATE_INN 0.000126 0.001160 0.000223
PULSES_PER_MINUTE 0.019847 0.283120 0.058628
zone_enqueue() 0.000000 0.000017 0.000000
save_website_info_file() 0.002344 0.004512 0.003141
Processing player input-press- 0.000007 0.072857 0.000020
extract_char_16 0.000000 0.050399 0.005797
THREE_MINUTE_PULSE 0.000014 0.000084 0.000021
PLAYER_STATS 0.010653 0.053986 0.013166
mobstat_save 0.002840 0.036269 0.004676
FIFTEEN_MINUTE_PULSE 0.235886 1.338819 0.501576
Auto_Save/write_sac_table 0.000001 0.000004 0.000002
update_player_count() 0.000020 0.000038 0.000022
SIXTY_MINUTE_PULSE 0.014516 0.021218 0.016294
Processing player input-extend 0.000008 0.001551 0.000017
All times are in seconds.
Total stats recorded: 45, MAX_STATS: 60
*teker* wrote:The original diku code that we're still running on breaks time up into 250ms pulses. That means that users can't execute more than 1 command every 250ms or more than 4 commands per second. It doesn't matter what the command is - that's the maximum the game will process. The rest get queued up and are execute "as fast as possible" but never faster than 1 command every 250ms. That includes hitting enter on a blank line to view your prompt.
Certainly this could be changed. It would be trivial to change constants and process commands every 125ms or faster. The problem is that all the stuff going on in the background doesn't always fit in a 125ms pulse. A lot of the time it doesn't fit in a 250ms pulse. When the background stuff takes longer you see extra lag.
There are solutions for resolving this. I've been working on optimizing the mob code and there are certainly other areas that could be improved. Beyond that you're looking at massive changes - either building a new priority-based event system that breaks up the background tasks into smaller chunks or moving to a multi-threaded environment (if the machine has multiple cores) where different zones run on different threads.
I have no problem working on this sort of thing - but it takes time and a ton of testing. It also pushes new features back. In the meantime, you can expect the average latency of a command to be 125ms + your average ping time. If things are busy in the background, it's going to take longer.
If things are busy in the background, it's going to take longer.
Users browsing this forum: No registered users and 4 guests