Actual performance

From CatchChallenger wiki
Jump to: navigation, search

No PaX impact on performance. Have look to: http://catchchallenger.first-world.info/benchmark-tracking/view.php

Core i5 750

0.1

Actual performance on 19 April 2012 is with benchmark of 200 with GUI:

  • Ram used under linux: 22MB
  • Cpu: 4% on core i5 750
  • 11B/s in upload, 6KB/s in download

Actual performance on 20 April 2012 is with benchmark of 400 with GUI:

  • Ram used under linux: 70MB
  • Cpu: 20% on core i5 750
  • 11B/s in upload, 12KB/s in download

Pass 100% of cpu -> 70% when I uncomment into the .pro file:

QMAKE_CFLAGS="-pipe -march=native -O2 -fomit-frame-pointer -floop-block -floop-interchange -fgraphite -funroll-loops"
QMAKE_CXXFLAGS="-pipe -march=native -O2 -fomit-frame-pointer -floop-block -floop-interchange -fgraphite -funroll-loops"

Cubox i pro

0.4

At 200 player on the unique map with full visibility, with move and few bit flooded chat, in debug (Qt and program):

  • 30B/s client -> server, 200KB/s server -> client (du to bad visiblity settings for the benchmark, 100B/s server -> client with correct settings)
  • 32% of cpu usage on quad core

Where is the cpu usage:

  • 75% into ssl, maybe due to missing kernel crypto api
  • 22% into the event parsing
  • 1% into the program

It use 22MB of memory for all player (110KB by player including message decoding variable, ssl layer, ...) + 22MB as base, total = 44MB.

All is very fast and don't need greater server.

Intel haswell Core i5-4670

0.5

Without SSL, epoll version, without optimisation (need 0 copy optimisation, -O2, -march=native, C only rewrite, ...), commit d4dbab56f9e578c2c589d61189709cbee76d0a4f.

  • 1% of cpu for 30 creation/s of charaters
  • 0% of cpu for 400 player moving on the map
  • 0.5% cpu usage for postgresql

Geode LX800

0.5

Without SSL, epoll version, without optimisation (need 0 copy optimisation, -O2, -march=native, C only rewrite, ...), commit d4dbab56f9e578c2c589d61189709cbee76d0a4f.

  • 49% of cpu for 30 creation/s of charaters, 38% for postgresql, 11% for catchchallenger
  • 3% of cpu for 400 player moving on the map
  • 0.5% cpu usage for postgresql

0.5

Without SSL, epoll version, without optimisation (need 0 copy optimisation, -O2, -march=native, C only rewrite, ...), commit c7b916bee9f02ed79b65ee38fb9cbb090b41af0e.

  • 75% of cpu for 30 creation/s of charaters, 52% for postgresql, 23% for catchchallenger
  • 9% of cpu for 400 player moving on the map
  • 4% of cpu for 400 player moving on the map with reemit
  • 0.5% cpu usage for postgresql
  • 400KB/s sended (server -> client) due to bad settings settings to benchmark the visibility. In normal it would be near of the reception.
  • 30KB/s received
  • 1MB of memory for 1000 player playing on the server, and 38MB to keep the static content

Cubox i4 pro (iMX6q)

0.5

Without SSL, epoll version, without optimisation (need 0 copy optimisation, -O2, -march=native, C only rewrite, ...), commit d4dbab56f9e578c2c589d61189709cbee76d0a4f.

  • 38% of cpu for 30 creation/s of charaters, 30% for postgresql, 8% for catchchallenger
  • 2% of cpu for 400 player moving on the map

Rpi

Version 2

9e0c4bf27da779595a73c6832aa7a7409308c4f8

  • With worse settings: max-players:65000, MapVisibilityAlgorithm-Simple: Reshow: 64000, Max:65000, Reemit:false
  • Bot: 400 Bots
  • -pipe -march=native -O2 -fomit-frame-pointer -floop-block -floop-interchange -fgraphite -funroll-loops -ffast-math -faggressive-loop-optimizations -funsafe-loop-optimizations
  • EXTRACHECKS define disabled

Result:

  •  %Cpu(s): 17.4 us, 11.3 sy, 0.0 ni, 49.8 id, 0.0 wa, 0.0 hi, 21.5 si, 0.0 st
  • Cpu: 37.1% catchchallenger
  • For the server by client: 0.18KB/s as input, 2KB/s as output (high bandwidth because it reemit lot of player on same map)

Internal benchmark

This is for server only, with 480 client connected.

Result to connect all player Result internal to connect all player Result to idle server Result internal to idle server Result to moving on server Result internal to moving on server Result to chat Result internal to chat
First test 37 526629 1 6520 2 31860 1 8264
Second test 37 500011 1 5980 2 50998 1 5905
Third test 38 538715 0 5987 3 33429 0 6103
  • Internal is with std::chrono::high_resolution_clock::now() difference
  • Not internet is with /proc/[pid]/stat under linux, value 14 utime

Connecting bot

At 99 connexion by seconds

Rpi

Commit a66e4688ab6b06e493cbbe1fbc31208c1d707a20

%Cpu(s): 65.9 us, 19.0 sy, 0.0 ni, 0.0 id, 4.8 wa, 0.0 hi, 10.3 si, 0.0 st

  • PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  • 9102 postgres 20 0 154284 8812 7736 R 42.0 4.7 0:04.42 postgres
  • 9103 postgres 20 0 154280 8164 7132 S 16.4 4.3 0:01.49 postgres
  • 9092 root 20 0 66312 54328 5212 S 13.6 28.9 0:20.30 catchchallenger