- Registriert
- Jan. 2021
- Beiträge
- 3.516
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Inwiefern?BeBur schrieb:Probleme verursacht
Ob es einen Unterschied gibt, ist noch ungeklärt bzw. offen.BeBur schrieb:Es macht keinen Unterschied
Vielleicht nicht gerade irrelevant, aber zumindest vernachlässigbar.BeBur schrieb:Der Unterschied ist irrelevant
Für eine komplette Gegenüberstellung muss erst die Prämisse geklärt sein. Soll heißen, ob und wenn ja welchen Unterschied es gibt, und welche Auswirkungen dieser hinsichtlich der Laufzeit (hierbei) überhaupt hat.BeBur schrieb:
A=B? | Zeit(A)!=Zeit(B)? |
✅ | ⭕ |
⭕ | ❔ |
OR_OR
) und && (AND_AND
) führen nachmake_cond_node (make_cmd.c) -> cm_cond (execute_cmd.c)
return (make_command (cm_if, (SIMPLE_COM *)temp));
#if defined (COND_COMMAND)
struct cond_com *
make_cond_node (type, op, left, right)
int type;
WORD_DESC *op;
struct cond_com *left, *right;
{
COND_COM *temp;
temp = (COND_COM *)xmalloc (sizeof (COND_COM));
temp->flags = 0;
temp->line = line_number;
temp->type = type;
temp->op = op;
temp->left = left;
temp->right = right;
return (temp);
}
#endif
COMMAND *
make_cond_command (cond_node)
COND_COM *cond_node;
{
#if defined (COND_COMMAND)
COMMAND *command;
command = (COMMAND *)xmalloc (sizeof (COMMAND));
command->value.Cond = cond_node;
command->type = cm_cond;
command->redirects = (REDIRECT *)NULL;
command->flags = 0;
command->line = cond_node ? cond_node->line : 0;
return (command);
#else
set_exit_status (2);
return ((COMMAND *)NULL);
#endif
}
IF
) führt nachmake_if_command (make_cmd.c)-> cm_if (execute_cmd.c)
https://github.com/bminor/bash/blob/master/make_cmd.c
COMMAND *
make_if_command (test, true_case, false_case)
COMMAND *test, *true_case, *false_case;
{
IF_COM *temp;
temp = (IF_COM *)xmalloc (sizeof (IF_COM));
temp->flags = 0;
temp->test = test;
temp->true_case = true_case;
temp->false_case = false_case;
return (make_command (cm_if, (SIMPLE_COM *)temp));
}
Und woran machst du das fest? Im Return von make_if_command steht doch noch einmal ein make_command? Un es ist doch noch nicht geklärt, wie COMMAND oder IF_COM dann abgearbeitet wird... Wir sind noch (weit) weg von Prozessorinstruktionen, denke ich.nutrix schrieb:und die if-Konstruktion führt zu weniger Budenzauber
Aber es macht doch einen Unterschied!!CyborgBeta schrieb:Vielleicht könnte man auch ein Mikrobenchmark machen... Aber ich hab ehrlich noch nie jemanden gesehen, der zwei Bash-Scripte gebenchmarkt hat...
&&
und ||
sind schneller!#!/bin/bash
cnt=1
n=1
while [ $n -lt 1000000 ]; do
if [ $((n % 3)) = 0 ]
then
cnt=$((cnt-1))
else
cnt=$((cnt+1))
fi
n=$((n + 1))
done
echo "$cnt"
#!/bin/bash
cnt=1
n=1
while [ $n -lt 1000000 ]; do
[[ $((n % 3)) = 0 ]] && cnt=$((cnt-1)) || cnt=$((cnt+1))
n=$((n + 1))
done
echo "$cnt"
$ time bash 1.sh
333334
real 0m6.295s
user 0m6.291s
sys 0m0.004s
$ time bash 2.sh
333334
real 0m5.433s
user 0m5.433s
sys 0m0.000s
Danke, daß Du Dir die Mühe gemacht hast. Ich hatte auch schon was gebastelt, war aber noch nicht reif und ganz so schick wie Deines. Interessant, daß es doch so ein großer Unterschied ist.CyborgBeta schrieb:Wir sprechen hier von einem Laufzeitunterschied von ca. 15 % (!)
Korrekt, es ist Batch, um Alltagsaufgaben eines Admins für diverses Zeugs zu erledigen, und dafür funktioniert es sehr gut. Klar hatte ich früher auch mal Bash mißbraucht, um ETL light zu machen und Massendaten zu verwerten, aber das war nur eine Notlösung, weil ich sonst nichts beim Kunden verfügbar hatte.CyborgBeta schrieb:Ich denke, man kann sagen, für komplexe Berechnungen ist ein Bash-Script einfach nicht gedacht.
Java ja, JS eher mäh. Leider ist das Leben immer kein Wunschkonzert, und man muß sich mit dem Plagen, was vor Ort verfügbar ist.CyborgBeta schrieb:Ein Hoch auf Java und JavaScript.![]()
sh
ist das übrigens nicht startbar - es muss bash
sein...