Job-Planning: implement handling of deadlines for prerequisites
...simple implementation ...decide *not* to cache the deadlines for now (possibly quadratic!) ...Test GREEN
This commit is contained in:
parent
b8309e5565
commit
848bb6fb86
4 changed files with 73 additions and 87 deletions
|
|
@ -56,8 +56,6 @@
|
|||
** the stack level above). See the [IterExplorer unit test](\ref lib::IterTreeExplorer_test::verify_expandOperation)
|
||||
** to understand this recursive on-demand processing in greater detail.
|
||||
**
|
||||
** @warning as of 4/2023 a complete rework of the Dispatcher is underway ///////////////////////////////////////////TICKET #1275
|
||||
**
|
||||
** @see JobPlanning_test
|
||||
** @see JobTicket
|
||||
** @see Dispatcher
|
||||
|
|
@ -78,7 +76,6 @@
|
|||
#include "lib/time/timevalue.hpp"
|
||||
#include "lib/itertools.hpp"
|
||||
#include "lib/nocopy.hpp"
|
||||
#include "lib/util.hpp"
|
||||
|
||||
|
||||
|
||||
|
|
@ -91,8 +88,6 @@ namespace engine {
|
|||
using play::Timings;
|
||||
using lib::time::Time;
|
||||
using lib::time::Duration;
|
||||
using util::unConst;
|
||||
using util::isnil;
|
||||
|
||||
|
||||
|
||||
|
|
@ -108,8 +103,6 @@ namespace engine {
|
|||
* persisted (other then in the job to be created). The implementation draws
|
||||
* on a recursive exploration of the corresponding JobTicket, which acts as
|
||||
* a general blueprint for creating jobs within this segment of the timeline.
|
||||
*
|
||||
* @todo WIP-WIP 6/2023 reworking the job-planning pipeline for »PlaybackVerticalSlice«
|
||||
*/
|
||||
class JobPlanning
|
||||
: util::MoveOnly
|
||||
|
|
@ -159,8 +152,7 @@ namespace engine {
|
|||
return Time::ANYTIME;
|
||||
|
||||
case play::TIMEBOUND:
|
||||
return timings.getTimeDue(frameNr_)
|
||||
- totalLatency(timings);
|
||||
return doCalcDeadline (timings);
|
||||
}
|
||||
NOTREACHED ("unexpected playbackUrgency");
|
||||
}
|
||||
|
|
@ -229,6 +221,14 @@ namespace engine {
|
|||
+ timings.outputLatency;
|
||||
}
|
||||
|
||||
Time
|
||||
doCalcDeadline(Timings const& timings)
|
||||
{
|
||||
Time anchor = isTopLevel()? timings.getTimeDue(frameNr_)
|
||||
: dependentPlan_->determineDeadline (timings); ////////////////////TICKET #1310 : quadratic in the depth of the dependency chain
|
||||
return anchor
|
||||
- totalLatency(timings);
|
||||
}
|
||||
|
||||
#if false /////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1276 :: to be refactored...
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1301 : likely to become obsolete
|
||||
|
|
|
|||
|
|
@ -49,11 +49,14 @@ return: 0
|
|||
END
|
||||
|
||||
|
||||
PLANNED "Render job planning calculation" JobPlanning_test <<END
|
||||
TEST "Render job planning calculation" JobPlanning_test <<END
|
||||
out-lit: Frame #5 @ ∆200ms
|
||||
out-lit: real-time-origin : 0:05:00.000
|
||||
out-lit: total latency : ≺52ms≻
|
||||
out-lit: deadline : 0:05:00.148
|
||||
out-lit: Prerequisite......
|
||||
out-lit: latency : ≺52ms≻
|
||||
out-lit: deadline : 0:05:00.096
|
||||
return: 0
|
||||
END
|
||||
|
||||
|
|
|
|||
|
|
@ -22,38 +22,21 @@
|
|||
|
||||
/** @file job-planning-test.cpp
|
||||
** unit test \ref JobPlanning_test
|
||||
**
|
||||
** @warning as of 4/2023 a complete rework of the Dispatcher is underway ///////////////////////////////////////////TICKET #1275
|
||||
*/
|
||||
|
||||
|
||||
#include "lib/test/run.hpp"
|
||||
#include "lib/error.hpp"
|
||||
|
||||
//#include "steam/engine/procnode.hpp"
|
||||
//#include "steam/play/dummy-play-connection.hpp"
|
||||
//#include "steam/mobject/model-port.hpp"
|
||||
#include "steam/engine/mock-dispatcher.hpp"
|
||||
#include "steam/play/timings.hpp"
|
||||
#include "lib/time/timevalue.hpp"
|
||||
//#include "lib/time/timequant.hpp"
|
||||
#include "lib/format-cout.hpp" ///////////////TODO
|
||||
//#include "lib/depend.hpp"
|
||||
//#include "lib/itertools.hpp"
|
||||
//#include "lib/util-coll.hpp"
|
||||
#include "lib/format-cout.hpp"
|
||||
#include "lib/util.hpp"
|
||||
|
||||
//#include <functional>
|
||||
//#include <vector>
|
||||
#include <utility>
|
||||
|
||||
using test::Test;
|
||||
//using util::isnil;
|
||||
//using util::last;
|
||||
//using std::vector;
|
||||
//using std::function;
|
||||
//using std::rand;
|
||||
using std::move;
|
||||
using util::isSameObject;
|
||||
|
||||
|
||||
namespace steam {
|
||||
|
|
@ -61,29 +44,9 @@ namespace engine{
|
|||
namespace test {
|
||||
|
||||
using lib::time::FrameRate;
|
||||
// using lib::time::Duration;
|
||||
using lib::time::Offset;
|
||||
// using lib::time::TimeVar;
|
||||
using lib::time::Time;
|
||||
// using mobject::ModelPort;
|
||||
using play::Timings;
|
||||
using util::isSameObject;
|
||||
|
||||
namespace { // used internally
|
||||
|
||||
|
||||
// ModelPort
|
||||
// getTestPort()
|
||||
// {
|
||||
// return mockDispatcher().provideMockModelPort();
|
||||
// }
|
||||
|
||||
|
||||
} // (End) internal defs
|
||||
#if false /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #1301
|
||||
#endif /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #1301
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -92,7 +55,6 @@ namespace test {
|
|||
/***************************************************************//**
|
||||
* @test document and verify the data aggregation and the calculations
|
||||
* necessary to prepare render jobs for scheduling.
|
||||
* @todo WIP-WIP 6/2023
|
||||
*/
|
||||
class JobPlanning_test : public Test
|
||||
{
|
||||
|
|
@ -194,7 +156,7 @@ namespace test {
|
|||
JobTicket& ticket = dispatcher.getJobTicketFor(portIDX, nominalTime);
|
||||
JobTicket& prereq = *(ticket.getPrerequisites()); // pick up the (only) prerequisite
|
||||
|
||||
JobPlanning masterPlan{ticket,nominalTime,frameNr};
|
||||
JobPlanning masterPlan{ticket,nominalTime,frameNr}; // the job plan for the master frame calculation
|
||||
JobPlanning prereqPlan{move(*(masterPlan.buildDependencyPlanning() ))}; // build a plan for calculating the prerequisite
|
||||
|
||||
CHECK (isSameObject(ticket, masterPlan.ticket()));
|
||||
|
|
|
|||
|
|
@ -75720,20 +75720,20 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686840707781" ID="ID_886260955" MODIFIED="1686840740791" TEXT="nur die ExitNode weiß im Detail, wie die Ausführung auszulösen ist">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685034304654" ID="ID_187208942" MODIFIED="1686839878645" TEXT="JobPlanning">
|
||||
<linktarget COLOR="#e14d4a" DESTINATION="ID_187208942" ENDARROW="Default" ENDINCLINATION="-864;159;" ID="Arrow_ID_426419648" SOURCE="ID_288857114" STARTARROW="None" STARTINCLINATION="1065;0;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685052158905" ID="ID_298268641" MODIFIED="1685802456361" TEXT="ist eine State-Facade für den aktuellen Planungs-Stand">
|
||||
<node COLOR="#338800" CREATED="1685034304654" ID="ID_187208942" MODIFIED="1687191797464" TEXT="JobPlanning">
|
||||
<linktarget COLOR="#5a459d" DESTINATION="ID_187208942" ENDARROW="Default" ENDINCLINATION="-864;159;" ID="Arrow_ID_426419648" SOURCE="ID_288857114" STARTARROW="None" STARTINCLINATION="1067;-60;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1685052158905" ID="ID_298268641" MODIFIED="1687191693244" TEXT="ist eine State-Facade für den aktuellen Planungs-Stand">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685802434530" ID="ID_84580124" MODIFIED="1685802448802" TEXT="fügt die DataSink(Handle) hinzu">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1685052155282" ID="ID_1374932582" MODIFIED="1687191730982" TEXT="verlinkt auf Frame-Nr und nominalTime">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1685052155282" ID="ID_1374932582" MODIFIED="1685802461544" TEXT="fügt die FrameCoord hinzu">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1685802434530" ID="ID_84580124" MODIFIED="1687191738145" TEXT="fügt die DataSink(Handle) hinzu">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686793407407" ID="ID_194609603" MODIFIED="1686793411216" TEXT="Erzeugung">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1686793407407" FOLDED="true" ID="ID_194609603" MODIFIED="1687191688480" TEXT="Erzeugung">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1686840957950" ID="ID_845216336" MODIFIED="1686867992404" TEXT="benötigte Daten">
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1686840974924" ID="ID_652755563" MODIFIED="1686840977248" TEXT="FrameCoord">
|
||||
|
|
@ -75751,12 +75751,12 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1686868079216" ID="ID_20062168" MODIFIED="1686868093219" TEXT="Builder">
|
||||
<icon BUILTIN="forward"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686868094902" ID="ID_1505078713" MODIFIED="1686868116317" TEXT="⟹ Timing-Berechnungen erfolgen erst bei Bedarf"/>
|
||||
<node COLOR="#435e98" CREATED="1686868094902" ID="ID_1505078713" MODIFIED="1687191655603" TEXT="⟹ Timing-Berechnungen erfolgen erst bei Bedarf"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686793412168" ID="ID_566542363" MODIFIED="1686793437280" TEXT="Deadline festsetzen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1686793444999" ID="ID_890638508" MODIFIED="1686964333735" TEXT="einfacher Job">
|
||||
<node COLOR="#338800" CREATED="1686793412168" ID="ID_566542363" MODIFIED="1687191659953" TEXT="Deadline festsetzen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1686793444999" FOLDED="true" ID="ID_890638508" MODIFIED="1686964333735" TEXT="einfacher Job">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1686873856076" ID="ID_1099231430" MODIFIED="1686964330736" TEXT="eigentlich liegt das Wissen darüber im JobFunktor">
|
||||
<arrowlink COLOR="#a56c6d" DESTINATION="ID_1464401657" ENDARROW="Default" ENDINCLINATION="-74;-579;" ID="Arrow_ID_1368232066" STARTARROW="None" STARTINCLINATION="933;50;"/>
|
||||
|
|
@ -75766,8 +75766,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node COLOR="#338800" CREATED="1686874325457" ID="ID_1367759543" MODIFIED="1686878348271" TEXT="in ExitNode">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686874330784" ID="ID_1065139085" MODIFIED="1686874366808" TEXT="und dort per Test-Spec aus dem Mock injizieren">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1686874330784" ID="ID_1065139085" MODIFIED="1687191647885" TEXT="und dort per Test-Spec aus dem Mock injizieren">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -75809,18 +75809,18 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1686963873774" ID="ID_1368816821" MODIFIED="1686963903814" TEXT="wird also außerhalb der Dispatcher-Pipeline verwaltet">
|
||||
<icon BUILTIN="forward"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686963884292" ID="ID_713008551" MODIFIED="1686963926980" TEXT="dann wohl im CalcStream">
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1686963884292" ID="ID_713008551" MODIFIED="1687191640923" TEXT="dann wohl im CalcStream">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686793449011" ID="ID_1790599874" MODIFIED="1686793453060" TEXT="abhängiger Job">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686964367620" ID="ID_673983932" MODIFIED="1686964434017" TEXT="braucht Deadline des unmittelbar abhängigen Nachfolger-Jobs">
|
||||
<node COLOR="#338800" CREATED="1686793449011" FOLDED="true" ID="ID_1790599874" MODIFIED="1687191683372" TEXT="abhängiger Job">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1686964367620" ID="ID_673983932" MODIFIED="1687191633500" TEXT="braucht Deadline des unmittelbar abhängigen Nachfolger-Jobs">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686964642887" ID="ID_1372706833" MODIFIED="1686964706541" TEXT="verwende diese anstelle der erwarteten real-Grid-Time">
|
||||
<node COLOR="#435e98" CREATED="1686964642887" ID="ID_1372706833" MODIFIED="1687191631837" TEXT="verwende diese anstelle der erwarteten real-Grid-Time">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1686965001287" ID="ID_1948616906" MODIFIED="1687137549677">
|
||||
|
|
@ -76190,32 +76190,49 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1687137618239" ID="ID_1445585564" MODIFIED="1687137626846" TEXT="Verkettung der Deadlines implementieren">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1687044201408" ID="ID_1507798641" MODIFIED="1687137690544" TEXT="die Deadline sollte man als Wert speichern (caching)">
|
||||
<node COLOR="#338800" CREATED="1687137618239" ID="ID_1445585564" MODIFIED="1687191627752" TEXT="Verkettung der Deadlines implementieren">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1687044201408" ID="ID_1507798641" MODIFIED="1687188666784" TEXT="die Deadline sollte man als Wert speichern (caching)">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
...denn sonst würde es genau zu rekursiven kaskadierenden (exponentiell aufwendigen) Aufrufen der Deadline-Berechnungs-Logik kommen; um das Caching zu steuern, kann ich einen Marker-Wert Time::NEVER verwenden
|
||||
...denn sonst würde es genau zu rekursiven kaskadierenden (quadratisch aufwendigen) Aufrufen der Deadline-Berechnungs-Logik kommen; um das Caching zu steuern, kann ich einen Marker-Wert Time::NEVER verwenden
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<arrowlink COLOR="#e42d77" DESTINATION="ID_1561329377" ENDARROW="Default" ENDINCLINATION="361;27;" ID="Arrow_ID_242786471" STARTARROW="None" STARTINCLINATION="481;-20;"/>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1687188669884" HGAP="30" ID="ID_419509522" MODIFIED="1687191103504" TEXT="ja .... aber YAGNI" VSHIFT="15">
|
||||
<linktarget COLOR="#955173" DESTINATION="ID_419509522" ENDARROW="Default" ENDINCLINATION="-1499;205;" ID="Arrow_ID_1313834873" SOURCE="ID_503672803" STARTARROW="None" STARTINCLINATION="-455;22;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1687137710306" ID="ID_1967222999" MODIFIED="1687137719434" TEXT="Refactoring: Berechnung symmetrisch machen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1687188700992" HGAP="30" ID="ID_1176783672" MODIFIED="1687188838995" TEXT="die ersten paar sind billig, und die Kosten sind nicht klar" VSHIFT="2">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Ich kann mir nicht vorstellen, daß die große Mehrheit der Jobs mehr als eine Prerequisite bekommt...  der Aufwand ist n/2 * (n+1), das bringt uns erst mal solange nicht um (bis es uns nachweislich umbringt...)
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1687137710306" ID="ID_1967222999" MODIFIED="1687191110809" TEXT="Refactoring: Berechnung symmetrisch machen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1687137733390" ID="ID_1496251627" MODIFIED="1687137744225" TEXT="top-Level: Deadline stammt von den Timings"/>
|
||||
<node CREATED="1687137744907" ID="ID_348107888" MODIFIED="1687137759424" TEXT="Prerequisite: Deadline stammt vom dependent Plan"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686840122729" ID="ID_1592165499" MODIFIED="1686840132630" TEXT="Ergebnis">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1686840122729" ID="ID_1592165499" MODIFIED="1687191673155" TEXT="Ergebnis">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1686840134669" ID="ID_1671465923" MODIFIED="1686840507523" TEXT="Form?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node COLOR="#5b280f" CREATED="1686840163409" ID="ID_936153920" MODIFIED="1686840418535" TEXT="per direkter Konversion">
|
||||
|
|
@ -76301,8 +76318,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686875085793" ID="ID_922531661" MODIFIED="1686875092431" TEXT="determineLeeway">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1686875085793" ID="ID_922531661" MODIFIED="1687191669854" TEXT="determineLeeway">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
<node CREATED="1686874949274" ID="ID_1842763016" MODIFIED="1686875271688">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
|
@ -76747,14 +76764,14 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="pencil"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686839683285" ID="ID_36707137" MODIFIED="1686839686828" TEXT="JobPlanning">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1686839683285" ID="ID_36707137" MODIFIED="1687191788043" TEXT="JobPlanning">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#5b280f" CREATED="1686839707718" ID="ID_608495626" MODIFIED="1686839807822" TEXT="1.Entwurf (Monaden)">
|
||||
<arrowlink COLOR="#596573" DESTINATION="ID_181262071" ENDARROW="Default" ENDINCLINATION="336;992;" ID="Arrow_ID_1922586461" STARTARROW="None" STARTINCLINATION="253;-27;"/>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1686839823154" ID="ID_288857114" MODIFIED="1686839878645" TEXT="Überarbeitung (»PlaybackVerticalSlice«)">
|
||||
<arrowlink COLOR="#e14d4a" DESTINATION="ID_187208942" ENDARROW="Default" ENDINCLINATION="-864;159;" ID="Arrow_ID_426419648" STARTARROW="None" STARTINCLINATION="1065;0;"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1686839823154" ID="ID_288857114" MODIFIED="1687191778565" TEXT="Überarbeitung (»PlaybackVerticalSlice«)">
|
||||
<arrowlink COLOR="#5a459d" DESTINATION="ID_187208942" ENDARROW="Default" ENDINCLINATION="-864;159;" ID="Arrow_ID_426419648" STARTARROW="None" STARTINCLINATION="1067;-60;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
</node>
|
||||
<node CREATED="1686839910080" ID="ID_713870050" MODIFIED="1686839917267" TEXT="Aufbau">
|
||||
|
|
@ -86847,7 +86864,7 @@ class Something
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1664730709910" FOLDED="true" ID="ID_532850171" MODIFIED="1664731043947" TEXT="Performance">
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1664730709910" FOLDED="true" ID="ID_532850171" MODIFIED="1687191026011" TEXT="Performance">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1664730715885" ID="ID_1774914566" MODIFIED="1664731036535" TEXT="GUI">
|
||||
<arrowlink COLOR="#6e6b89" DESTINATION="ID_580266574" ENDARROW="Default" ENDINCLINATION="-1072;126;" ID="Arrow_ID_1760515184" STARTARROW="None" STARTINCLINATION="-1832;638;"/>
|
||||
|
|
@ -86859,6 +86876,10 @@ class Something
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1664730718511" ID="ID_1773381955" MODIFIED="1664730727367" TEXT="Engine">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1687190990795" ID="ID_503672803" MODIFIED="1687191103504" TEXT="#1310 investigate job-planning and scheduling overhead">
|
||||
<arrowlink COLOR="#955173" DESTINATION="ID_419509522" ENDARROW="Default" ENDINCLINATION="-1499;205;" ID="Arrow_ID_1313834873" STARTARROW="None" STARTINCLINATION="-455;22;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1664730722868" ID="ID_1536097796" MODIFIED="1664730727368" TEXT="Session">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
|
|
|
|||
Loading…
Reference in a new issue