BlackBoard » Design, Programmierung & Entwicklung » Programmieren » serverseitige Programmiersprache » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen serverseitige Programmiersprache
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Zmaster
Junior Member


Dabei seit: 15.02.2003
Beiträge: 133

serverseitige Programmiersprache       Zum Anfang der Seite springen

Hallo,
ich möchte mit einem Kumpel bald ein kleines Projekt starten. Es soll zum Schluss mehr oder weniger ein Bild an den Anwender schicken.
Die Programmiersprache muss Daten aus einer Datenbank holen und dann mit diesen arbeiten können. Ich würde mal schätzen, dass die Rechenzeit für die Datenbankabfrage ca. 20% in Anspruch nimmt. Der Rest ist die Kalkulation mit diesen Daten.
Da die Daten sehr groß sind, ist es uns wichtig, dass diese wirklich schnell abgearbeitet werden können.

Nun stellt sich natürlich die Frage, welche Programmiersprache am Besten geeignet ist. PHP und MySql würden zwar unsere Erwartungen in Sachen "realisierbar" erfüllen, aber wir halten sie schlichtweg einfach für zu langsam. Derzeit würden wir Java Server Page nehmen. Ist das ratsam?
Welche serverseitige Sprache würdert ihr empfehlen?

Gruß
zmaster
11.06.2004 01:08 Zmaster ist offline Beiträge von Zmaster suchen
CDW CDW ist männlich
eine Simulation


Dabei seit: 12.10.2002
Beiträge: 1.329
Herkunft: CreateRemoteThread

      Zum Anfang der Seite springen

eine CGI Anwendung in der Lieblingssprache ( C/C++/Delphi usw.) schreiben (also alles was nicht interpritiert werden muss) meine persönliche Empfehlung wäre asm (ok, das macht ihr nicht Augenzwinkern wollte ich aber der vollständigkeitshalber erwähnen) gefolgt von C und Delphi mit C++. Wobei Delphi (über Standardedition) CGI Assistenten mitbringt (aber an sich sind CGI anwendungen ziemlihc einfach zu schreiben)
Was MySql betrifft - es gibt schnittstellenmodule sowohl für Delphi wie für C/c++ (und alles was mit C angesprochen werden kann, kann man auch mit ASM ansprechen großes Grinsen )
Vielleicht werden mich hier einige User totschlagen Augenzwinkern , aber je nach der Aufgabe könnte eine speziell programmierte (eigene) Datenbank um einiges schneller werkeln als MySql (wie gesagt, je nach komplexität der Datenstruktur - wenn viele Daten gesucht werden und nur wenige reinkommen - Binärbäaum wäre dann ideal - und so weiter).
Es gibt sicherlich User die anderer Meinung sind Augenzwinkern Ich bezweifele aber dass JavaServerPages wirklihc schnlelller sind als PHP-ISAPI modul (bei Linux: als Kernel modul)

PS: große Daten kann man ziemlich gut mit "neumodischen" *ironie - bezieht sich auf viele Compiler* CPU-erweiterungen wie MMX und SSE/SSE2 wegputzen. Zumindest haben fast alle "normal" Rechner MMX. Je nachdem was ihr macht können geziehlte Optimierungen wahre Wunder wirken (wiederum CPU-anhängig) bei mir brachten zwei Cache-Befehle für den P4 eine verbesserung um etwa Faktor 20 (war aber ein Extremfall Augenzwinkern und auch an den Cache angepasst)

Wenn es kein geheimniss ist Augenzwinkern , könntest du vielleicht wage beschreiben was ihr machen wollt?

PPS: falls ihr wirklich Hardcorespeed haben wollt, dann könntet ihr auch ISAPI schreiben Augenzwinkern

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von CDW: 11.06.2004 14:37.

11.06.2004 14:32 CDW ist offline E-Mail an CDW senden Homepage von CDW Beiträge von CDW suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

JSP ist schneller als PHP, doch was bringt es bei grossen
Datenmengen, wenn dann immer noch eine schlechte Performance
der MySQL datenbank hat. Imho könnte man die MySQL DB
gut gegen eine PostgreSQL oder Teradata Datenbank tauschen.
Oder eine Firebird, welche ja auch frei zu haben ist.

Was CGI angeht, da ist doch einwenig erfahrung nötig,
genauso wie für JSP, zudem ihr schon PHP könnt, ist
es evtl. sinnvoller erst die DB zu optimieren.

Devil

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
11.06.2004 16:44 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
CDW CDW ist männlich
eine Simulation


Dabei seit: 12.10.2002
Beiträge: 1.329
Herkunft: CreateRemoteThread

      Zum Anfang der Seite springen

@Devil:

Zitat:
JSP ist schneller als PHP

gut zu wissen...

Zitat:
Was CGI angeht, da ist doch einwenig erfahrung nötig

mit ganz schlechtem stil:
StdIn und StdOut (hab gerade eine Demo-cgi auf der platte gefunden großes Grinsen ), eventuell noch ein paar Globalvariablen abfragen (je nach Bedarf)... die CGI Spezifizierung ist zwar recht komplex, man braucht aber nicht unbediengt alles zu beachten - wenn es für ein eigenes Projekt ist Augenzwinkern
Naja, gut, um kein Sicherheitsloch zu erschaffen sollte man schon die Augen auflassen (oder statt C Pascal/Delphi C++ nehmen (wegen der Stringverarbeitung) )
Aber im Prinzip sollte ein Tag reichen um sich mit CGI vertraut zu machen.

PS: ich plädiere immer noch für eine eigene Datenbank großes Grinsen - allerdings lohnt es sich eventuell nicht eine eigene zu scheiben (falls die struktur der Daten zu komplex ist).Ansonsten müsste eigentlich auch ein primitiver Index-array eine relationale Datenbank hinter sich lassen (nur lässen sich damit nur einfache Strukturen erfassen )
11.06.2004 23:16 CDW ist offline E-Mail an CDW senden Homepage von CDW Beiträge von CDW suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Zitat:
Original von CDW
@Devil:

Zitat:
JSP ist schneller als PHP

gut zu wissen...

PS: ich plädiere immer noch für eine eigene Datenbank großes Grinsen - allerdings lohnt es sich eventuell nicht eine eigene zu scheiben (falls die struktur der Daten zu komplex ist).Ansonsten müsste eigentlich auch ein primitiver Index-array eine relationale Datenbank hinter sich lassen (nur lässen sich damit nur einfache Strukturen erfassen )


Wenn du so gerne DBs selber schreibst Augenzwinkern

Solange wir nicht wissen, was sie wirklich machen wollen,
und ob sie evtl. einen Auftraggeber haben (Schule großes Grinsen ),
kann man da nur spekulieren großes Grinsen

Wie gesagt, imho ist die Datenbank der Punkt, wo man am meisten holen
wird können.

Devil

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von phlox81: 12.06.2004 01:06.

12.06.2004 00:47 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
Zmaster
Junior Member


Dabei seit: 15.02.2003
Beiträge: 133

Themenstarter Thema begonnen von Zmaster
      Zum Anfang der Seite springen

Also wir haben keinen Auftraggeber - erst recht nicht die Schule!

Datenbank selber schreiben? hm...
Ich hoffe, du meinst jetzt nicht das ganze bloß in Dateien reinschreiben, weil das nun nicht wirklich den Performance-Vorteil bringt. Ich selber habe sehr viel Erfahrung mit MySql, aber werde mich mal weiter erkundigen, welche Datenbanken es noch so im Angebot gibt. Eventuell kaufen wir uns auch eine Lizens. Aber da muss man erstmal sehen, wie sich das Projekt entwickelt.

Ich merke schon, dass ihr von Java nicht wirklich fasziniert seid. Kann ich auch gut verstehen. Ich tendiere auch immer mehr zu C++ mit CGI als Schnittstelle.
Mein Kumpel ist in C++ ein bisschen firm, aber mit CGI fangen wir beide das erste Mal an. Aber da mache ich mir mal nicht so große Sorgen. Wir haben schon ganz andere Sachen geschaft Augenzwinkern

Ich will mal soviel verraten: Es soll eine Stadtkarte gezeichnet werden.
Welche Grundidee aber noch dahinter steht, verrate ich nicht.

Es müssen also Punkte für die Straßen gespeichert werden. Diese werden in die Datenbank geschrieben und zum Zeichnen des Bildes wieder ausgelesen und miteinander verbunden. Der Server schickt dann nur noch eine Bild Datei an den Client. Vielleicht noch ein kleine JavaApplet, womit der User ein paar Aktionen machen kann, ohne den Server zu belästigen.

Gruß
zmaster
12.06.2004 10:54 Zmaster ist offline Beiträge von Zmaster suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Zitat:
Original von Zmaster
Ich merke schon, dass ihr von Java nicht wirklich fasziniert seid. Kann ich auch gut verstehen. Ich tendiere auch immer mehr zu C++ mit CGI als Schnittstelle.
Mein Kumpel ist in C++ ein bisschen firm, aber mit CGI fangen wir beide das erste Mal an. Aber da mache ich mir mal nicht so große Sorgen. Wir haben schon ganz andere Sachen geschaft Augenzwinkern


Das hab ich nicht gesagt.
JSP hat sogar viele Vorteile, da es mit JDBC zusammen direkt
eine sehr gute Datenbankschnittstelle anbietet, und durch die
Objektorientierung bietet sich auch eine sehr einfache Modularisierung
an. Zu dem werden heute viele große Projekte in JSP gemacht,
es ist also nicht verkehrt, es zu kennen und zu können.

Devil

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
12.06.2004 11:24 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
CDW CDW ist männlich
eine Simulation


Dabei seit: 12.10.2002
Beiträge: 1.329
Herkunft: CreateRemoteThread

      Zum Anfang der Seite springen

Zitat:
Ich hoffe, du meinst jetzt nicht das ganze bloß in Dateien reinschreiben, weil das nun nicht wirklich den Performance-Vorteil bringt

eigentlich doch Augen rollen - ist nur die Frage der organisation und komplexität. Bzw. haben für mich Dateien nix mit einer Datenbank zu tun Augenzwinkern (zumindest nicht direkt).

Zitat:
von wikipedia: Eine Datenbank ist die elektronische Form eines Karteikastens. Es handelt sich um eine Sammlung von Daten, die aus der Sicht des Benutzers zusammengehören, z. B. eine Personaldatenbank oder eine Lagerinventardatenbank. Es gibt hierarchische, relationale, multidimensionale und objektorientierte Datenbanken. Die Datenbank wird üblicherweise von einem Datenbankverwaltungssystem (DBMS) verwaltet. Ein DBMS zusammen mit einer oder mehreren Datenbanken nennt man auch Datenbanksystem.



so gesehen hat bestimmt schon mal jeder eine Datenbank geschrieben - sei es ein Adressenverwalter oder Teminkalender - auch auf Arraybasis. Ein Array von 0 bis 2004 in welchem jeweils die Ereignise stehen die im entsprechendem Jahr stattgefunden haben ist schon eine Datenbank.

Ich beschreib das mal so: man speichert die Straßennahmen mit den dazugehörigen koordinaten.Sortiert nach Strassennahmen. Wichtig ist hier die schnelle Suche nach dem Namen.Man kann es in einer Liste machen, aber dann müsste man die Liste bei der suche immer durchlaufen (bei 4294967296 einträgen im schnitt 2142967296 Schritte).
Dagegen wäre hier ein Binärbaum nahezu perfekt (wenn man 4294967296 Elemente durchsucht, braucht man maximal 32 schritte). Aus der programmiertechnischen Sicht ist es natürlich günstig den Baum im Speicher zu behalten und nur Backups als Dateien abzulegen Augenzwinkern .

Es gibt ja relativ viele Datenbankmodelle - MySql ist relational und müsste demnach die Daten in einer zweidimensionalen Tabelle verwalten die über Schlüssel miteinander verknüpft sind - ziemlich universell aber auch langsam (relativ Augenzwinkern ). Jedenfalls gehe ich jede Wette ein, dass mein Beispiel mit dem Array da oben geschwindigkeitsmäßig (wenn man sucht was in einem bestimmten Jahr passiert ist) MySql & Co um Längen schlägt - natürlich sieht es wiederum anders aus, falls man plötzlich nach einem Ereignis sucht und nicht weiß in welchem Jahr es eingetreten ist.
Natürlich spielen hier auch Algorithmen eine große Rolle - die kommen direkt nach dem Konzept - mit einem schlechten Algo kann man auch ein gutes Konzept und Assembler/MMX optimierung nicht wieder wett machen Augenzwinkern
Z.B kann man eine Textdatei nach einem Wort duchsuchen, in dem man buchstabe für buchstabe duchrgeht und vergleicht. Schneller gehts aber mit dem Boyer Moore Algo.

Zurück zum thema:
So ist es auch mit dem Binärbaum - sollte man mehrere Verknüpunfgen der Daten unter einander benötigen, wird die organisation schon mal komplexer... (meine komlexeste Datenbankstruktur war bis jetzt ein Binärbaum mit einer ListeInListe mit Verweisen auf einen anderen Baum ( Abiklausur - umsetzen wollen würde ich das nicht Augenzwinkern )). Das heißt ab einer gewissen Komplexität lohnt es sich nicht auf eine professionelle Datenbank zu verzichnten (zuviel aufwand). Vielleicht lohnt es sich eher nach den Anforderungen zu schauen und dann das passende datenbankmodell herauszusuchen (hierarchisch, objektorientiert usw). Ihr müsst es entscheiden. Ich sage nicht dass professionelle Datenbanksysteme schlecht seinen - man muss nur bedenken wozu die da sind und welche Aufgaben sie zu erfüllen haben. Denn für eine Firma ist es viel billiger eine universelle Datenbank zu verwenden als für jedes Problem eine eignene, angepasste zu entwickeln (bzw. entwickeln zu lassen).
Ok, hoffe mein Anliegen verständlich rübergebracht zu haben großes Grinsen

Zitat:
Wie gesagt, imho ist die Datenbank der Punkt, wo man am meisten holen
wird können.

Das wäre auch so ein Streitpunkt Augenzwinkern - da hier mit den Daten gerechnet werden soll kann man viel mit einem richtigen Algo holen, dann immer kleinschrittiger optimieren (compileroptionen) + Cacheausrichtung, Alignen und eventuell inline-asm+MMX nutzung oder zusammenfassung der Rechenoperationen zur Blöcken (wegen FPU) oder nutzung von MMX und so weiter und so fort. Intelcompiler könnte hier schnonmal gute Dienste leisten. Kenntniss der jeweiligen Tricks wären auch nicht schlecht. Programmiererfahrung spielt da auch eine Rolle.
12.06.2004 23:27 CDW ist offline E-Mail an CDW senden Homepage von CDW Beiträge von CDW suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Ich hab im Januar den Terradata Physical Implementation Kurs gehabt.
Da gings unteranderem darum, wie man ne moderene Relationale
DB aufbaut, und wie die DB dann die Daten über die einzelnen
Knoten verteilt, und wie die Tabellenstruktur darauf sich auswirkt.
Ich kann nur sagen, das war sehr interessant, mal zu sehen,
wie die Daten auf den DB-Amps(Knoten) verteilt werden.

Devil

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
13.06.2004 00:11 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
Zmaster
Junior Member


Dabei seit: 15.02.2003
Beiträge: 133

Themenstarter Thema begonnen von Zmaster
      Zum Anfang der Seite springen

Mal kurz zu CDW:

Ich weiß schon, was du mit deinen Dateien meinst. So ähnliche Programme habe ich früher auch mal geschrieben.
Einer wirklichen Datenbank soll das aber nicht entsprechen. Ein Kumpel (Wirtschaftsinformatiker) meinte nur, dass eine richtige Datenbank als Prozess laufe. Im Hintergrund werden natürlich auch Dateien zum Teil gespeichert, aber der Geschwindigkeitsunterschied ist doch, so glaube ich, ersichtlich, wenn ich erst eine Datei öffnen muss, als wenn ich aus einem laufenden Prozess Daten hole.

Das mit deinem Binärbaum erscheint mir nicht passend für unser Projekt. Die korrekte Reihenfolge ist natürlich für die Performace richtig, aber wenn ich in MySql den Index anlege, dann sortiert er intern selber und ich muss mich nicht drum kümmern smile
Außerdem werden ein paar mehr Daten hinterlegt als bloß die Koordinaten. Das erscheint mir zu komplex, als es in einen Listenbaum einzutragen (zumal ich damit überhaupt noch keine Erfahrung habe Augenzwinkern ).

Gruß
zmaster
13.06.2004 11:07 Zmaster ist offline Beiträge von Zmaster suchen
CDW CDW ist männlich
eine Simulation


Dabei seit: 12.10.2002
Beiträge: 1.329
Herkunft: CreateRemoteThread

      Zum Anfang der Seite springen

Zitat:
Das mit deinem Binärbaum erscheint mir nicht passend für unser Projekt. Die korrekte Reihenfolge ist natürlich für die Performace richtig, aber wenn ich in MySql den Index anlege, dann sortiert er intern selber und ich muss mich nicht drum kümmern smile
Außerdem werden ein paar mehr Daten hinterlegt als bloß die Koordinaten. Das erscheint mir zu komplex, als es in einen Listenbaum einzutragen

das ist einleuchtend... zudem war es ja nur ein Beispiel Augenzwinkern

Zitat:
dass eine richtige Datenbank als Prozess laufe. Im Hintergrund werden natürlich auch Dateien zum Teil gespeichert, aber der Geschwindigkeitsunterschied ist doch, so glaube ich, ersichtlich, wenn ich erst eine Datei öffnen muss, als wenn ich aus einem laufenden Prozess Daten hole.
Ich glaub wir reden doch ein bisschen an einander vorbei Augen rollen ich habe die ganze Zeit unabhängig von der Programmiersprache,programmiertechnischen Mitteln und OS gesprochen. Aber ich glaube es ist einleuchtend dass die Daten in die Datenbank nicht durch ein Zauberwort reinkommen großes Grinsen - sie werden beim Start in den Speicher geladen und organisiert. Genauso werden die auch als Files gesichert. Niemand zwingt den Programmierer jedesmal eine Datei zu öffnen, auszulesen und zu schließen - obwohl es ja möglich ist. Man mappt die Datei in den Speicher und lässt sie da drin solange man damit arbeitet - das ganze gehört aber schon zur programmiertechnischen Umsetzung (wäre ja auch möglich aus den Dateien auszulesen und die wieder zu schließen Augen rollen ). Also wenn ein Programm welches Textdateien indizieren kann und später in Sekundenbruchteilen dem User sagt wo (in welcher Datei, welche Zeile usw) der gesuchte Begriff sich befindet keine Datenbank ist dann weiß ich auch nicht weiter Augenzwinkern . Die Definition von Wikipedia entspricht eigentlich der die ich eingetrichtert bekommen habe Augenzwinkern und in unzähligen Klausuren sowie in der Prüfung zu lösen hatte (schreiben sie ein Lexika blabla, schreiben sie für eine Praxis ein Patientenverwaltungsprogramm, dessen Datenbank solche Daten aufnehmen muss wie blablabla). Dateien sind für mich grob gesagt nur Speicherabbildungen der Datenbank die man zur Sicherung braucht (um nicht jedesmal die Daten neu eingeben zu müssen), und wie die DB eigentlich im Hintergrund funktioniert (ob sie ihre Daten in Bäumen oder Listen verwaltet, ob sie diese sofort als Dateien ablegt oder im Speicher behält) hat ja eigentlich nichts zu sagen (außer der Perfomance Augenzwinkern )
Die Perfomancevorteile im eigenen Programm gegenüber einer DB kann man also nur durch geschicktere Organisation der Daten und deren Verwaltung rausschlagen.
13.06.2004 15:41 CDW ist offline E-Mail an CDW senden Homepage von CDW Beiträge von CDW suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » serverseitige Programmiersprache

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH