Starter/Tuning/Benchmark Script - Your suggestions

Questions about Wine on Linux
Locked
Konfu
Newbie
Newbie
Posts: 3
Joined: Mon Aug 20, 2012 8:25 am

Starter/Tuning/Benchmark Script - Your suggestions

Post by Konfu »

Hello,

i have written a starter/tuning/benchmark bash-script for StarCraft 2 and wanted to know from you guys:
- what else benchmark information could be important,
- how good are my tuning parameters (esp. scheduler),
- could there be others to test with other benchmark parameters
and the golden question - how could i grab benchmark information directly out of the wine-server/process (like graphic throughput)?

I am quite an amateur in terms of scripting, wine, etc. so dont even try to correct/improve everything.
This is by far the most complex thing i have ever written and i am proud like a mother about my work.

I know this is the wrong forum for scheduler parameters and scripting so consider my questions as wine-related.
And i also know that, on top of the missing reproducible workload (this is the next to work on), performance is a vague, relative and none the less complex thing.

Only for you, i generously added script-comments.
Please, feel free to comment or correct me, i am open for every suggestion.

for readability purpose, im posting this in pastebin:
http://pastebin.com/8TpjFJWD
Konfu
Newbie
Newbie
Posts: 3
Joined: Mon Aug 20, 2012 8:25 am

Re: Starter/Tuning/Benchmark Script - Your suggestions

Post by Konfu »

i have implemented a very ugly workaround to get a reproducible workload by faking key presses and klicks to login, start a replay, etc.
its not the best solution for this problem but it was enough to test the "performance parameters", i have picked, repeatedly.
i have to admit now, they are crap.

even though it was the same environment, i never got results that were even close to be comparable to each other.
here is what "perf sched record" usually gives and what my average results were:

Code: Select all

:~$ sudo perf sched latency | grep SC2.exe
 ---------------------------------------------------------------------------------------------------------------
  Task                  |   Runtime ms  | Switches | Average delay ms | Maximum delay ms | Maximum delay at     |
 ---------------------------------------------------------------------------------------------------------------
  SC2.exe:13289         |   2487.822 ms |       52 | avg:   14.235 ms | max:  263.354 ms | max at: 33353.674463 s
  SC2.exe:10844         |     10.390 ms |       93 | avg:    8.706 ms | max:   34.361 ms | max at: 33353.621905 s
  SC2.exe:10793         |   1679.317 ms |      123 | avg:    7.483 ms | max:   49.546 ms | max at: 33353.563309 s
  SC2.exe:13293         |     85.150 ms |      135 | avg:    4.304 ms | max:  106.528 ms | max at: 33353.582307 s
  SC2.exe:9139          |     22.930 ms |       30 | avg:    1.997 ms | max:   11.155 ms | max at: 33353.228996 s
  SC2.exe:13288         |    181.845 ms |      104 | avg:    1.348 ms | max:   15.832 ms | max at: 33353.560924 s
  SC2.exe:10842         |      7.455 ms |      286 | avg:    1.028 ms | max:   15.404 ms | max at: 33353.156948 s
  SC2.exe:8871          | 141457.380 ms |      301 | avg:    0.489 ms | max:    8.087 ms | max at: 33353.874751 s
  SC2.exe:10843         |     34.294 ms |      386 | avg:    0.071 ms | max:    6.117 ms | max at: 33352.905841 s
every 10 seconds, the script gathers such a chunk of data and in the end calculates the average values.
out of three test-benchmarks with a duration of 5 minutes of heavy-load-starcraft, here is what i got:

Code: Select all

Benchmark cycles run:11		Tasks monitored:120
Runtime ms	| Switches		| Avg delay ms	| Max delay ms
17820.90340	129.81666		2.55822		65.32324

Benchmark cycles run:11		Tasks monitored:128
Runtime ms	| Switches		| Avg delay ms	| Max delay ms
15050.62118	134.00000		2.87294		88.56131

Benchmark cycles run:11		Tasks monitored:130
Runtime ms	| Switches		| Avg delay ms	| Max delay ms
14612.82010	117.38461		3.64117		119.16806
i desperately need to collect other/different parameters that will give viable results but this field is simply too vast for a newbie like me.
i took a look at /proc/'PID'/[sched-stat-map] but i dont know if they are appropriate for my purpose.

how can i pull information out of a running wine-process? does wine maybe even has an interface for that?
in a generous sense, all the "fixme" messages could be considered as throughput :)

plz halp with some wisdom, or just a hint. i will learn the rest on my own.
Konfu
Newbie
Newbie
Posts: 3
Joined: Mon Aug 20, 2012 8:25 am

Re: Starter/Tuning/Benchmark Script - Your suggestions

Post by Konfu »

I just found the the fps debug-channel.

Code: Select all

WINEDEBUG="-all,+fps" wine SC2.exe &> bench-sample_fps
with this major breakthrough, i think, i can now get reliable information and put them in context to cpu and gpu load.

Code: Select all

aticonfig --od-getclocks >> bench-sample_gpuload
ps -eLo pid,%cpu,%mem,cputime,lwp | grep `pidof SC2.exe` >> bench-sample_cpuload
the next step will be an automation of altering and testing settings and compare the different results ... damn, this will never be finished.
Locked