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
Starter/Tuning/Benchmark Script - Your suggestions
Re: Starter/Tuning/Benchmark Script - Your suggestions
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:
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:
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.
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
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 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.
Re: Starter/Tuning/Benchmark Script - Your suggestions
I just found the the fps debug-channel.
with this major breakthrough, i think, i can now get reliable information and put them in context to cpu and gpu load.
the next step will be an automation of altering and testing settings and compare the different results ... damn, this will never be finished.
Code: Select all
WINEDEBUG="-all,+fps" wine SC2.exe &> bench-sample_fps
Code: Select all
aticonfig --od-getclocks >> bench-sample_gpuload
ps -eLo pid,%cpu,%mem,cputime,lwp | grep `pidof SC2.exe` >> bench-sample_cpuload