Scheduler-test: fine-tuning of result presentation (Gnuplot)
Visual tweaks specific to this measurement setup * include a numeric representation of the regression line * include descriptive axis labels * improve the key names to clarify their meaning * heuristic code for the x-ticks Package these customisations as a helper function into the measurement tool
This commit is contained in:
parent
8e33194882
commit
3517ab6965
4 changed files with 129 additions and 54 deletions
|
|
@ -93,7 +93,7 @@ set style line 3 linetype 2 linewidth 2 linecolor rgb '#0B7FCC'
|
|||
set style line 4 linetype 6 linewidth 2 linecolor rgb '#37999D'
|
||||
set style line 5 linetype 7 linewidth 2 linecolor rgb '#248269'
|
||||
set style line 6 linetype 13 linewidth 2 linecolor rgb '#00C443'
|
||||
set style line 7 linetype 12 linewidth 2 linecolor rgb '#B86E1C'
|
||||
set style line 7 linetype 12 linewidth 2 linecolor rgb '#EBE83E'
|
||||
set style line 8 linetype 5 linewidth 2 linecolor rgb '#762C14'
|
||||
set style line 9 linetype 4 linewidth 2 linecolor rgb '#AA0519'
|
||||
|
||||
|
|
@ -150,8 +150,7 @@ ${if Xrange}
|
|||
set xrange [${Xrange}] ${endif
|
||||
}${if Yrange}
|
||||
set yrange [${Yrange}] ${endif
|
||||
}
|
||||
set key autotitle columnheader tmargin
|
||||
}set key autotitle columnheader tmargin
|
||||
|
||||
)~";
|
||||
|
||||
|
|
@ -172,7 +171,10 @@ ${else
|
|||
}# regression line function derived from data
|
||||
regLine(x) = STATS_slope * x + STATS_intercept
|
||||
${end if
|
||||
}
|
||||
}#
|
||||
regLabel = sprintf("Model: %3.2f·p + %3.2f", STATS_slope, STATS_intercept)
|
||||
|
||||
set key horizontal width -4
|
||||
${if Xtics
|
||||
}set xtics ${Xtics}
|
||||
${else}${if Xrange}${else
|
||||
|
|
@ -193,14 +195,14 @@ if (plots > 1) {
|
|||
#
|
||||
####---------Scatter-Regression-Plot-------------
|
||||
plot $RunData using 1:2 with points linestyle 1, \
|
||||
regLine(x) with line linestyle 9
|
||||
regLine(x) with line linestyle 9 title regLabel
|
||||
|
||||
if (plots > 1) {
|
||||
# switch off decorations for secondary diagram
|
||||
unset arrow 10
|
||||
unset arrow 11
|
||||
set border 2+8
|
||||
set key bmargin
|
||||
set key bmargin vertical
|
||||
${if Y2range}
|
||||
set yrange [${Y2range}]
|
||||
${endif}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
#include "lib/time/timevalue.hpp"
|
||||
#include "lib/format-string.hpp"
|
||||
#include "lib/format-cout.hpp"
|
||||
#include "lib/gnuplot-gen.hpp"
|
||||
#include "lib/test/diagnostic-output.hpp"//////////////////////////TODO work in distress
|
||||
//#include "lib/format-string.hpp"
|
||||
#include "lib/test/transiently.hpp"
|
||||
|
|
@ -391,11 +390,11 @@ namespace test {
|
|||
cpuLoad.calibrate();
|
||||
//////////////////////////////////////////////////////////////////TODO for development only
|
||||
MARK_TEST_FUN
|
||||
TestChainLoad testLoad{64};
|
||||
testLoad.configure_isolated_nodes()
|
||||
.buildTopology()
|
||||
.printTopologyDOT()
|
||||
.printTopologyStatistics();
|
||||
// TestChainLoad testLoad{64};
|
||||
// testLoad.configure_isolated_nodes()
|
||||
// .buildTopology()
|
||||
// .printTopologyDOT()
|
||||
// .printTopologyStatistics();
|
||||
|
||||
struct Setup
|
||||
: StressRig, bench::LoadPeak_ParamRange_Evaluation
|
||||
|
|
@ -418,10 +417,8 @@ namespace test {
|
|||
auto results = StressRig::with<Setup>()
|
||||
.perform<bench::ParameterRange> (2,64);
|
||||
|
||||
auto csv = results.renderCSV();
|
||||
cout << csv <<endl;
|
||||
cout << "───═══───═══───═══───═══───═══───═══───═══───═══───═══───═══───"<<endl;
|
||||
cout << lib::gnuplot_gen::scatterRegression(csv);
|
||||
cout << Setup::renderGnuplot (results);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -141,24 +141,21 @@
|
|||
#define VAULT_GEAR_TEST_STRESS_TEST_RIG_H
|
||||
|
||||
|
||||
#include "vault/common.hpp"
|
||||
#include "test-chain-load.hpp"
|
||||
#include "lib/binary-search.hpp"
|
||||
//#include "test-chain-load.hpp"
|
||||
//#include "lib/test/transiently.hpp"
|
||||
#include "lib/test/transiently.hpp"
|
||||
|
||||
#include "vault/gear/scheduler.hpp"
|
||||
#include "lib/time/timevalue.hpp"
|
||||
//#include "lib/iter-explorer.hpp"
|
||||
#include "lib/meta/function.hpp"
|
||||
#include "lib/format-string.hpp"
|
||||
#include "lib/format-cout.hpp"//////////////////////////TODO RLY?
|
||||
#include "lib/format-cout.hpp"
|
||||
#include "lib/gnuplot-gen.hpp"
|
||||
#include "lib/stat/data.hpp"
|
||||
#include "lib/util.hpp"
|
||||
|
||||
//#include <functional>
|
||||
#include <algorithm>
|
||||
#include <utility>
|
||||
//#include <memory>
|
||||
//#include <string>
|
||||
#include <vector>
|
||||
#include <tuple>
|
||||
#include <array>
|
||||
|
|
@ -551,14 +548,14 @@ namespace test {
|
|||
Column<double> time {"result time"};
|
||||
Column<double> conc {"concurrency"};
|
||||
Column<double> jobtime {"avg jobtime"};
|
||||
Column<double> overhead{"overhead"};
|
||||
Column<double> impeded {"avg impeded"};
|
||||
|
||||
auto allColumns()
|
||||
{ return std::tie(param
|
||||
,time
|
||||
,conc
|
||||
,jobtime
|
||||
,overhead
|
||||
,impeded
|
||||
);
|
||||
}
|
||||
};
|
||||
|
|
@ -573,8 +570,30 @@ namespace test {
|
|||
data.param = param;
|
||||
data.time = stat.coveredTime / 1000;
|
||||
data.conc = stat.avgConcurrency;
|
||||
data.jobtime = stat.activeTime/stat.activationCnt;
|
||||
data.overhead = stat.timeAtConc(1) / stat.activationCnt; ////OOO not really clear if sensible
|
||||
data.jobtime = stat.activeTime / stat.activationCnt;
|
||||
data.impeded = (stat.timeAtConc(1) + stat.timeAtConc(0))/stat.activationCnt;
|
||||
}
|
||||
|
||||
|
||||
static string
|
||||
renderGnuplot (Table const& results)
|
||||
{
|
||||
using namespace lib::gnuplot_gen;
|
||||
string csv = results.renderCSV();
|
||||
Param maxParam = * std::max_element (results.param.data.begin(), results.param.data.end());
|
||||
Param xtics = maxParam > 500? 50
|
||||
: maxParam > 200? 20
|
||||
: maxParam > 100? 10
|
||||
: 5;
|
||||
return scatterRegression(
|
||||
ParamRecord().set (KEY_CSVData, csv)
|
||||
.set (KEY_TermSize, "600,600")
|
||||
.set (KEY_Xtics, int64_t(xtics))
|
||||
.set (KEY_Xlabel, "load size ⟶ number of jobs")
|
||||
.set (KEY_Ylabel, "active time ⟶ ms")
|
||||
.set (KEY_Y2label, "concurrent threads ⟶")
|
||||
.set (KEY_Y3label, "avg job time ⟶ µs")
|
||||
);
|
||||
}
|
||||
};
|
||||
//
|
||||
|
|
|
|||
|
|
@ -111897,7 +111897,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1708651353088" ID="ID_9850721" MODIFIED="1708651367397" TEXT="ergänzende Meßmethode : lineare Regression">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1708651381229" ID="ID_34422716" MODIFIED="1708651432845" TEXT="Ansatz: Verhaltesmuster durch anderen Meß-Ansatz bestätigen">
|
||||
<node COLOR="#435e98" CREATED="1708651381229" ID="ID_34422716" MODIFIED="1712594284191" TEXT="Ansatz: Verhaltesmuster durch anderen Meß-Ansatz bestätigen">
|
||||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1708651455035" ID="ID_154910298" MODIFIED="1708651476794" TEXT="das Kriterium »Schedule gebrochen« ist sehr spezifisch">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
|
|
@ -111941,7 +111941,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1708652417482" ID="ID_350523685" MODIFIED="1708652439760" TEXT="brauche dafür ein anderes Meßwerkzeug">
|
||||
<node COLOR="#338800" CREATED="1708652417482" ID="ID_350523685" MODIFIED="1712594063905" TEXT="brauche dafür ein anderes Meßwerkzeug">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1708652645156" ID="ID_1558350785" MODIFIED="1708652664818" TEXT="»ParameterRangeBench«">
|
||||
<icon BUILTIN="info"/>
|
||||
|
|
@ -112033,8 +112033,18 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<linktarget COLOR="#66a0bc" DESTINATION="ID_1813891417" ENDARROW="Default" ENDINCLINATION="221;-14;" ID="Arrow_ID_305160226" SOURCE="ID_1762169754" STARTARROW="None" STARTINCLINATION="246;-21;"/>
|
||||
</node>
|
||||
<node CREATED="1712238458491" ID="ID_112442438" MODIFIED="1712238472711" TEXT="darauf statistische Auswertungen / lineare Regression"/>
|
||||
<node CREATED="1712238473499" ID="ID_109820250" MODIFIED="1712238539719" TEXT="Darstellung als Gnuplot">
|
||||
<arrowlink COLOR="#4a8bb7" DESTINATION="ID_561451802" ENDARROW="Default" ENDINCLINATION="330;-389;" ID="Arrow_ID_787725069" STARTARROW="None" STARTINCLINATION="191;23;"/>
|
||||
<node COLOR="#435e98" CREATED="1712238473499" ID="ID_109820250" MODIFIED="1712594272496">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Darstellung als <b>Gnuplot</b>-Diagramm aufbereitet
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<arrowlink COLOR="#4a8bb7" DESTINATION="ID_561451802" ENDARROW="Default" ENDINCLINATION="330;-389;" ID="Arrow_ID_787725069" STARTARROW="None" STARTINCLINATION="67;4;"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -112057,9 +112067,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1712241515362" ID="ID_326943240" MODIFIED="1712241527541" TEXT="kann durchaus auch reguläres Schedule sein"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1710079791943" ID="ID_1402055509" MODIFIED="1710080437833" TEXT="Integration">
|
||||
<linktarget COLOR="#9d4168" DESTINATION="ID_1402055509" ENDARROW="Default" ENDINCLINATION="-761;122;" ID="Arrow_ID_397225736" SOURCE="ID_1781115298" STARTARROW="None" STARTINCLINATION="-165;-9;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1710079791943" ID="ID_1402055509" MODIFIED="1712594169086" TEXT="Integration der Auswertung und Darstellung">
|
||||
<linktarget COLOR="#3486b2" DESTINATION="ID_1402055509" ENDARROW="Default" ENDINCLINATION="-776;46;" ID="Arrow_ID_397225736" SOURCE="ID_1781115298" STARTARROW="None" STARTINCLINATION="-165;-9;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1710079800390" FOLDED="true" ID="ID_746814828" MODIFIED="1711983575595" TEXT="meine Statistik- und CSV Hilfsmittel von Yoshimi-Test einbringen">
|
||||
<linktarget COLOR="#1a2cc4" DESTINATION="ID_746814828" ENDARROW="Default" ENDINCLINATION="-1079;-52;" ID="Arrow_ID_1221012838" SOURCE="ID_1377396763" STARTARROW="None" STARTINCLINATION="1439;113;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
|
|
@ -114722,8 +114732,8 @@ std::cout << tmpl.render({"what", "World"}) << s
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1712165247528" ID="ID_1095964212" MODIFIED="1712190796632" TEXT="Regression berechnen und visualisieren">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1712165247528" ID="ID_1095964212" MODIFIED="1712594038147" TEXT="Regression berechnen und visualisieren">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1712180140911" ID="ID_1277334109" MODIFIED="1712190777261" TEXT="muß Parameter-Überagbe und Daten-Rückgabe überarbeiten">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1712180159277" ID="ID_1547350046" MODIFIED="1712180172746" TEXT="bisher: std::pair<PAR, zeit>"/>
|
||||
|
|
@ -114732,7 +114742,7 @@ std::cout << tmpl.render({"what", "World"}) << s
|
|||
<node CREATED="1712183753046" ID="ID_1287892532" MODIFIED="1712183793104" TEXT="DataFile als RVO-Parameter einführen"/>
|
||||
<node CREATED="1712183793908" ID="ID_1299689687" MODIFIED="1712183813221" TEXT="Referenz darauf anstatt dem Tupel in die runTest(data) geben"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#c8b6b6" COLOR="#690f14" CREATED="1712183881848" ID="ID_277756370" MODIFIED="1712539750718" TEXT="Probleme dabei...">
|
||||
<node BACKGROUND_COLOR="#c8b6b6" COLOR="#690f14" CREATED="1712183881848" FOLDED="true" ID="ID_277756370" MODIFIED="1712539750718" TEXT="Probleme dabei...">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1712183893055" ID="ID_1518548729" MODIFIED="1712183902505" TEXT="Table-Def muß öffentlich werden"/>
|
||||
<node CREATED="1712183903573" ID="ID_1522610699" MODIFIED="1712183933315" TEXT="der »offen gelassene« Parameter-Typ PAR macht das alles etwas kniffelig"/>
|
||||
|
|
@ -114799,7 +114809,7 @@ std::cout << tmpl.render({"what", "World"}) << s
|
|||
<node CREATED="1712185076777" ID="ID_1271427599" MODIFIED="1712185113759" TEXT="overhead"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1712190824923" ID="ID_1753510801" MODIFIED="1712190852825" TEXT="unklar: »overhead«-Messung">
|
||||
<node BACKGROUND_COLOR="#ccae9d" COLOR="#990033" CREATED="1712190824923" ID="ID_1753510801" MODIFIED="1712594013171" TEXT="unklar: »overhead«-Messung">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1712190864143" ID="ID_438624459" MODIFIED="1712190868082" TEXT="Aussagekraft unklar"/>
|
||||
<node CREATED="1712235705069" ID="ID_1990935438" MODIFIED="1712235716317" TEXT="diverse Auswertungen möglich"/>
|
||||
|
|
@ -114825,6 +114835,38 @@ std::cout << tmpl.render({"what", "World"}) << s
|
|||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1712235962435" ID="ID_169942944" MODIFIED="1712235968597" TEXT="nach einigem Knobeln...."/>
|
||||
<node CREATED="1712235969257" ID="ID_269326004" MODIFIED="1712235980940" TEXT="ergibt das sinnvolle und weitgehend konstante Werte"/>
|
||||
<node CREATED="1712593669702" ID="ID_717375896" MODIFIED="1712593698781" TEXT="dabei bleibts — ist tatsächlich relevant">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node COLOR="#5b280f" CREATED="1712593700081" ID="ID_300205071" MODIFIED="1712593718579" TEXT="overhead könnte man auch pro Job angeben — ist aber nicht sinnvoll">
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1712593727818" ID="ID_837101544" MODIFIED="1712593992752" TEXT="zum einen: dann müßte man die Ordinate explizit kappen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Denn es gibt stets einige wenige <i>ganz dramatische Ausreißer, </i>die sonst die Skala so verschieben würden, daß man die eigentlichen Meßwerte nicht mehr sieht; ich müßte also eigens wieder Anpassungs-Code schreiben, und mir eine Heuristik einfallen lassen, um die Skala zu kappen — unnötiger Aufwand für eine nebenbei mit aufgenommene Größe
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
<node CREATED="1712593740845" ID="ID_479430012" MODIFIED="1712593891254" TEXT="und außerdem: das sagt wenig über die »Arbeitsphase« aus">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
...denn der Umstand, daß der Overhead / Job weitgehend konstant ist, zeigt, daß wir hier einen separaten Setup-Effekt haben, vermutlich nämlich vor allem die Job-Planungs-Zeit. Da wir demgegenüber <i>in der aktiven Phase sehr gut linear sind, </i>kann man diesen zusätzlichen Overhead zunächst mal als Artefakt der Meßanordnung beiseite lassen (und später dann mal eigens untersuchen)
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1712235662399" ID="ID_1565221854" MODIFIED="1712235681102" TEXT="„overhead“ ist nicht der richtige Begriff">
|
||||
<node CREATED="1712235820166" ID="ID_1638446802" MODIFIED="1712235905469" TEXT="Lösung sucht Problem">
|
||||
|
|
@ -114849,7 +114891,9 @@ std::cout << tmpl.render({"what", "World"}) << s
|
|||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1712236415206" ID="ID_494152831" MODIFIED="1712236443530" TEXT="Namen flexibilisieren"/>
|
||||
<node CREATED="1712236421664" ID="ID_1114332459" MODIFIED="1712236430361" TEXT="mehrere Felder ermöglichen"/>
|
||||
<node CREATED="1712236446082" ID="ID_502918899" MODIFIED="1712236504775" TEXT="Subclassing? / mehr Baukastenprinzip?"/>
|
||||
<node BACKGROUND_COLOR="#c8c0b6" CREATED="1712236446082" ID="ID_502918899" MODIFIED="1712593648305" TEXT="Subclassing? / mehr Baukastenprinzip?">
|
||||
<icon BUILTIN="forward"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -115049,8 +115093,7 @@ std::cout << tmpl.render({"what", "World"}) << s
|
|||
<b>Fazit</b>: knapp am Abgrund vorbei
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
<node CREATED="1712539492581" ID="ID_1123688435" MODIFIED="1712539854967" TEXT="es bleibt eine fragile und komplexe Lösung">
|
||||
<arrowlink COLOR="#485b90" DESTINATION="ID_88618902" ENDARROW="Default" ENDINCLINATION="-10;50;" ID="Arrow_ID_693388546" STARTARROW="None" STARTINCLINATION="173;12;"/>
|
||||
</node>
|
||||
|
|
@ -115066,8 +115109,7 @@ std::cout << tmpl.render({"what", "World"}) << s
|
|||
und sind <i>leicht anpassbar</i>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
<linktarget COLOR="#458191" DESTINATION="ID_1981096404" ENDARROW="Default" ENDINCLINATION="-160;25;" ID="Arrow_ID_784328672" SOURCE="ID_1714941979" STARTARROW="None" STARTINCLINATION="131;9;"/>
|
||||
<icon BUILTIN="forward"/>
|
||||
</node>
|
||||
|
|
@ -115080,7 +115122,7 @@ std::cout << tmpl.render({"what", "World"}) << s
|
|||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1712190783314" ID="ID_561451802" MODIFIED="1712238531623" TEXT="Gnuplot-Skript generieren">
|
||||
<linktarget COLOR="#4a8bb7" DESTINATION="ID_561451802" ENDARROW="Default" ENDINCLINATION="330;-389;" ID="Arrow_ID_787725069" SOURCE="ID_109820250" STARTARROW="None" STARTINCLINATION="191;23;"/>
|
||||
<linktarget COLOR="#4a8bb7" DESTINATION="ID_561451802" ENDARROW="Default" ENDINCLINATION="330;-389;" ID="Arrow_ID_787725069" SOURCE="ID_109820250" STARTARROW="None" STARTINCLINATION="67;4;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1712364733453" ID="ID_1252919239" MODIFIED="1712539694378" TEXT="setup in HIlfsfunktion im Stress-Test-Rig verlagen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
|
|
@ -115089,15 +115131,30 @@ std::cout << tmpl.render({"what", "World"}) << s
|
|||
</node>
|
||||
<node COLOR="#435e98" CREATED="1712539707366" ID="ID_1463647276" MODIFIED="1712539724078" TEXT="steht im Code zusammen mit der Datenauswertung"/>
|
||||
</node>
|
||||
<node CREATED="1712364714975" ID="ID_1343230425" MODIFIED="1712364731729" TEXT="Anpassungen">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1712364780151" ID="ID_1769816620" MODIFIED="1712364932636" TEXT="Regressions-Parameter anzeigen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#435e98" CREATED="1712364714975" ID="ID_1343230425" MODIFIED="1712594028138" TEXT="Anpassungen">
|
||||
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="info"/>
|
||||
<node COLOR="#338800" CREATED="1712364780151" ID="ID_1769816620" MODIFIED="1712593593058" TEXT="Regressions-Parameter anzeigen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1712587560954" ID="ID_1623350813" MODIFIED="1712593591737" TEXT="sprintf()-Funktion verwenden">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1712364901190" ID="ID_1416417622" MODIFIED="1712364932644" TEXT="sinnvolles tick-spacing für diese Messung">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1712587574785" ID="ID_190382735" MODIFIED="1712593591736" TEXT="in einen zusätzlichen Key(Label)">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1712364920076" ID="ID_719755566" MODIFIED="1712364932645" TEXT="Achsenbeschriftungen vorbelegen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1712587585787" ID="ID_1456505633" MODIFIED="1712593591735" TEXT="diesen in eine 2. Spalte packen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1712364901190" ID="ID_1416417622" MODIFIED="1712593595023" TEXT="sinnvolles tick-spacing für diese Messung">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1712593595872" ID="ID_477321972" MODIFIED="1712593601847" TEXT="werte maxParam aus">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1712593602512" ID="ID_795700203" MODIFIED="1712593621972" TEXT="wähle gestuft 5 .. 10 .. 20 .. 50"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1712364920076" ID="ID_719755566" MODIFIED="1712593624367" TEXT="Achsenbeschriftungen vorbelegen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -115342,9 +115399,9 @@ std::cout << tmpl.render({"what", "World"}) << s
|
|||
<icon BUILTIN="forward"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1710080381906" ID="ID_1781115298" MODIFIED="1710080445458" TEXT="brauche einfache Darstellbarkeit der Ergebnisse">
|
||||
<arrowlink COLOR="#9d4168" DESTINATION="ID_1402055509" ENDARROW="Default" ENDINCLINATION="-761;122;" ID="Arrow_ID_397225736" STARTARROW="None" STARTINCLINATION="-165;-9;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#b6c8c1" COLOR="#338800" CREATED="1710080381906" ID="ID_1781115298" MODIFIED="1712594169086" TEXT="brauche einfache Darstellbarkeit der Ergebnisse">
|
||||
<arrowlink COLOR="#3486b2" DESTINATION="ID_1402055509" ENDARROW="Default" ENDINCLINATION="-776;46;" ID="Arrow_ID_397225736" STARTARROW="None" STARTINCLINATION="-165;-9;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
|
|||
Loading…
Reference in a new issue