Hallo @jthi ,
Ihr Vorschlag ist tatsächlich das, was mir Ryan Lekivetz in unserer privaten Diskussion empfohlen hat. Er schlägt die Einführung der Funktion Tick Seconds() im Designskript vor und nach der Designgenerierung vor, um die Designgenerierungszeit zu zählen.
Nachfolgend ein Beispiel (inspiriert von Matrizen verwenden 
t1 = Tick Seconds();
DOE(
Space Filling Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, -1, 1, "X1", 0 ),
Add Factor( Continuous, -1, 1, "X2", 0 ),
Add Factor( Continuous, -1, 1, "X3", 0 ),
Add Factor( Continuous, -1, 1, "X4", 0 ),
Add Factor( Continuous, -1, 1, "X5", 0 ),
Add Factor( Continuous, -1, 1, "X6", 0 ),
Add Factor( Continuous, -1, 1, "X7", 0 ),
Add Factor( Continuous, -1, 1, "X8", 0 ),
Add Factor( Continuous, -1, 1, "X9", 0 ), Set Random Seed( 830486233 ),
FFF Optimality Criterion( MaxPro ),
Space Filling Design Type( Fast Flexible Filling, 27 ), Simulate Responses( 0 ),
Set Run Order( Randomize ), Make Table}
);
t2 = Tick Seconds();
Show( t2 - t1 );
Und für diese Designgeneration kann ich den Wert im Protokoll finden:
t2 - t1 = 2.31666666665114;
Daher werde ich diese Methode manuell für meine verschiedenen Designs verwenden (es sollte nicht zu lange dauern). Wenn Sie eine Idee haben, wie dieser Prozess automatisiert oder vereinfacht werden kann, sind Sie herzlich willkommen:)
Vielen Dank für das Interesse und die Empfehlung,
Wenn Sie die DoE mit JSL durchführen möchten, würde ich ungefähr Folgendes tun. Wenn Sie sie mehrmals mit unterschiedlichen Seeds/Einstellungen durchführen müssen, können Sie mit JSL etwas tiefer gehen.
Names Default To Here(1);
record_doe = function({doe_expr}, {Default Local},
wait(0);
start = Tick Seconds();
d = Eval(doe_expr);
dt = d << Make Table;
wait(0);
end = Tick Seconds();
d << Close Window;
Close(dt, no save);
return(end - start);
);
designs = Associative Array();
designs["Space Filling MaxPro"] = Expr(DOE(
Space Filling Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, -1, 1, "X1", 0 ),
Add Factor( Continuous, -1, 1, "X2", 0 ),
Add Factor( Continuous, -1, 1, "X3", 0 ),
Add Factor( Continuous, -1, 1, "X4", 0 ),
Add Factor( Continuous, -1, 1, "X5", 0 ),
Add Factor( Continuous, -1, 1, "X6", 0 ),
Add Factor( Continuous, -1, 1, "X7", 0 ),
Add Factor( Continuous, -1, 1, "X8", 0 ),
Add Factor( Continuous, -1, 1, "X9", 0 ), Set Random Seed( 830486233 ),
FFF Optimality Criterion( MaxPro ),
Space Filling Design Type( Fast Flexible Filling, 27 ), Simulate Responses( 0 ),
Set Run Order( Randomize )}
));
designs["Space Filling Centroid"] = Expr(DOE(
Space Filling Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, -1, 1, "X1", 0 ),
Add Factor( Continuous, -1, 1, "X2", 0 ),
Add Factor( Continuous, -1, 1, "X3", 0 ),
Add Factor( Continuous, -1, 1, "X4", 0 ),
Add Factor( Continuous, -1, 1, "X5", 0 ),
Add Factor( Continuous, -1, 1, "X6", 0 ),
Add Factor( Continuous, -1, 1, "X7", 0 ),
Add Factor( Continuous, -1, 1, "X8", 0 ),
Add Factor( Continuous, -1, 1, "X9", 0 ), Set Random Seed( 1 ),
FFF Optimality Criterion( Centroid ),
Space Filling Design Type( Fast Flexible Filling, 20 ), Simulate Responses( 0 ),
Set Run Order( Randomize )}
));
design_durations = Associative Array();
For Each({{design_name, design_expr}}, designs,
design_dur = record_doe(design_expr);
design_durations[design_name] = design_dur
);
Show(design_durations);
You could also of course save the designs</CODE></P>
</LINGO-BODY>
<LINGO-SUB id="lingo-sub-897331" slang="en-US" mode="CREATE">Betreff: Wie zeichnet man die DoE-Generierungszeit auf?</LINGO-SUB>
<LINGO-BODY id="lingo-body-897331" slang="en-US" mode="CREATE">
<P>Vielen Dank für die Lösung <A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14366" target="_blank">@jthi</A> !<BR /> Das Skript klingt gut, um dies für wenige Designs zu automatisieren, aber da ich es für 31 Designs ausführen muss, wäre es etwas mühsam, jedes DOE-Generierungsskript in das Array einzufügen. Ich werde mit der „manuellen“ Version fortfahren, mit dem von <A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/5358" target="_blank">@Mark_Bailey</A> erwähnten Upgrade, um Tick Seconds() durch HP Time() zu ersetzen, da dies eine präzisere Messung in Mikrosekunden ermöglicht.<BR /> Das endgültige Skript für ein bestimmtes Beispiel sieht folgendermaßen aus:</P>
<PRE><CODE class=" language-jsl">t1 = HP Time();
DOE(
Space Filling Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, -1, 1, "X1", 0 ),
Add Factor( Continuous, -1, 1, "X2", 0 ),
Add Factor( Continuous, -1, 1, "X3", 0 ),
Add Factor( Continuous, -1, 1, "X4", 0 ),
Add Factor( Continuous, -1, 1, "X5", 0 ),
Add Factor( Continuous, -1, 1, "X6", 0 ),
Add Factor( Continuous, -1, 1, "X7", 0 ),
Add Factor( Continuous, -1, 1, "X8", 0 ),
Add Factor( Continuous, -1, 1, "X9", 0 ), Set Random Seed( 830486233 ),
FFF Optimality Criterion( MaxPro ),
Space Filling Design Type( Fast Flexible Filling, 27 ), Simulate Responses( 0 ),
Set Run Order( Randomize ), Make Table}
);
t2 = HP Time();
Show( t2 - t1 );
Vielen Dank an alle für die wertvollen Beiträge!