Virtueller Server

[abgespalten aus Wochenende-Thread]

Mal eine Frage nebenbei:
Virtueller Server, linux Derivat, 128MB, ca. 1GHz,
welche Scriptsprache würdet ihr darauf laufen lassen?:

  • C/C++ ist klar, braucht nicht viele Ressourcen,
  • Java?, benötigt viele Ressourcen,
  • aber wie ist es mit Python?,
  • PHP auch mal in den Raum geworfen…
    Nehme ich halt noch Wikipedia-Beispiele:
    Beispiele
    ASP/ASP.NET
    ColdFusion
    JavaServer Pages (JSP)
    PHP
    Perl
    Python z. B. Django
    Ruby

Also es ist eine (interpretierte) Sprache mit minimaler Hardware gesucht … Und Guten Morgen :suspect:

[quote=CyborgBeta]welche Scriptsprache würdet ihr darauf laufen lassen?:

  • C/C++ ist klar, braucht nicht viele Ressourcen,
  • Java?, benötigt viele Ressourcen,[/quote]

… wow

Assembler!

Bitte bleibt ernsthaft und vera… mich nicht!

im wochenendthread kann ich nicht ernsthaft sein :frowning:
[inzwischen abgespalten worden]

Aber klingt Assembler nicht gut ? -_-

Also, wie es zu C und Java vergleich kam:

Ich hab einfach mal nweb ( Simple command line http server - Unix & Linux Stack Exchange ) mit Java Ressourcen verglichen!

Und dazwischen liegen nun mal Welten.

Würde mich trotzdem freuen, dennoch eine konstruktive Antwort zu erhalten.

[quote=Michimitsu]Aber klingt Assembler nicht gut ?[/quote]Als “Sriptsprache” durchaus mit C/C++ auf dem selben level…

@CyborgBeta :
Soweit ich das im Hinterkopf hatte, ist Python sogar langsamer als Java,
hab dann mal gegoogelt und das gefunden:
https://benchmarksgame.alioth.debian.org/u64q/python.html

Welche Ressourcen hast du denn da verglichen? Da geht’s doch nur um ein möglich kurzes Ausführungsscript,
dahinter kann eine sonst wie fette Library liegen. Der Ressourcenverbrauch wird hauptsächlich dadurch bestimmt, wie sauber
und/oder optimiert man programmiert (behaupte ich mal).
Geht es dir um Geschwindigkeit, Ressourcenverbrauch oder möglichst wenig Code zu schreiben? Das wird nicht ganz klar.

Willst du ein Webserver aufsetzen? Das kommt irgendwie nur indirekt durch, weil dass das Thema auf Stackoverflow ist
und du bei Python z.B. Django nennst (da gäbe es aber noch Flask, CherryPy, etc.)

Wenn ich einen 0815 HttpServer starte, verbraucht
das Programm laut Java Profiler so ~16-25M**i**B Heap Space
JVM verbraucht nicht mal 1% von der CPU, aber bei deinem Schwachen VServer wird die Auslastung wahrscheinlich höher sein.

Mit Ressourcen meine ich eigentlich Arbeitsspeicherplatzanforderungen.
Jea, die dahinterliegenden Librarys machen den Kohl fett…
Deswegen ist ein Benchmark auch nicht so ganz einfach.

So - ICH hab einen Fehler gemacht, ich hab JVM ausführung mit einem compilierten C-Programm verglichen, welches dieselbe Aufgabe oder Problemdomäne übernimmt, verglichen.

Also ich hab ein paar Aufgaben, die nur sehr “umständlich” mit Shellscripts erledigt werden können, deshalb suche ich da eine ressourcesparende Skriptsprachenalternative.

Einfach sagen: Xyz find’ ich gut!, würd mir schon reichen.

Kommt drauf an, was du machen möchtest. Aber:
Perl find’ ich gut!

Chef find’ ich gut! :o)

Damit jeder im Bilde ist:
Z. B. eine Datei kopieren:

BASH/SHELL:

cp -n hallo.txt /ein/wirklich/sehr/komplizierter/Pfad/

(java.nio.file.)Files.copy(Paths.get(props.getProperty("fileName")), Paths.get("/ein/wirklich/sehr/komplizierter/Pfad/" + props.getProperty("fileName")), StandardCopyOption.REPLACE_EXISTING);

(Exception weggelassen)

Java sehr kompliziert für diese einfache Aufgabenstellung!

Wie wäre es eigentlich mit Go? Im Vergleich zu Java sind da die Systemanfordrungen nicht sehr hoch.

*** Edit ***

Wobei Python für 0815 Skripte auch gut ist.

Profis machen das direkt in Maschinensprache!

Profis verwenden auch eine magnetische Nadel um Dateien auf eine Festplatte zu speichern!

soll das jetzt


in Einzelschritten nacherzählt sein?
Butterfliegen!

Dafür gibt es ein emacs Kommando

@CyborgBeta : Komm doch auf den Punkt, was du willst.
Erst erzählst du was von Arbeitsspeicher und im nächsten Punkt geht’s dann doch um den “Umfang” des Sourcecodes.

Wie gesagt der obige HTTPServer nimmt gerade mal ~3.5MB in Anspruch. Ist doch selbst auf so einer Machine verkraftbar.
Was sind das überhaupt für Werte? Ist das eine VM aufm Raspberry? :o)

Nicht mich nennen, was soll das?, das löst eine E-Mail aus…
Das soll das Nennen nicht forcieren…

BTT: PHP löst alle Probleme. Könnt ihr euch noch an die Wetterseite erinnern?
Allerdings hab ich gerade ein seltsames Problem. Input:

<?php
$erlaubt = true;

echo getJson();

function getJson() {
	global $erlaubt;
	$file = 'wetter1.txt';
	$json;
	if (file_exists($file)) {
		$json = file_get_contents($file);
	} else {
		$json = file_get_contents('specialUrl');
		file_put_contents($file, $json);
	}
	$myArray = json_decode($json, true);
	$t1 = $myArray['dt'];
	$t2 = time();
	$diff = ($t2-$t1)/60;
	if ($diff > 120 and $erlaubt) {
		$erlaubt = false;
		unlink($file);
		return getJson();
	}
	$myArray['zeit1'] = date('Y-m-d H:i:s', $t1);
	$myArray['zeit2'] = date('Y-m-d H:i:s', $t2);
	$myArray['zeit3'] = date($diff);
	$json = json_encode($myArray);
	return $json;
}
?>

… global ist natürlich überhaupt nicht toll.
Also, wenn das wetter nicht vorhanden ist, soll es geladen und gespeichert werden,
wenn das wetter vorhanden ist, soll das gespeicherte wetter geladen werden,
wenn das wetter älter als 120 Min. ist, dann soll das ganze nochmal aufgerufen werden,
zuvor wird das alte wetter gelöscht.
Problem: Was, wenn das wetter immer älter als 120 Min. ist? Dann würd es immer wieder aufgerufen werden,
deswegen das global.
Frage: Wie schreibt man das richtig?

Knobelaufgabe für euch:

function setDate(& $elem) {
    foreach ($elem as $key => $value) {
        if (is_array($value)) {
            setDate($value);
        } else if (is_object($value)) {
            setDate($value);
        } else {
            if (is_int($value) and $value > 1000000000) {
                $elem[$key] = date('Y-m-d H:i:s', $value);
                // echo $elem[$key];
            }
        }
    }
}

Es soll das Datum, “in einer komplexen Struktur”, gesetzt werden.
Anbei: php - Recursion and passing by reference - Stack Overflow
Wieso erscheint die “Zuweisung” trotz Referenz nicht beim Aufrufer?

@CroNut : Was ich will? Eigentlich alles ,- also die Welt^^.