AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Macht es Sinn ? Multithreaded Server in Delphi ?
Thema durchsuchen
Ansicht
Themen-Optionen

Macht es Sinn ? Multithreaded Server in Delphi ?

Ein Thema von HamsterTrainer · begonnen am 31. Okt 2006 · letzter Beitrag vom 4. Nov 2006
Antwort Antwort
Seite 1 von 3  1 23      
HamsterTrainer

Registriert seit: 26. Nov 2004
5 Beiträge
 
#1

Macht es Sinn ? Multithreaded Server in Delphi ?

  Alt 31. Okt 2006, 19:29
Hallo Zusammen,

Ich hab mal ne "dumme" Frage
Macht es Sinn einen Multithreaded Server in Delphi zu Programmieren ?

Normalerweise bekommt ja jeder Client seinen eigenen Thread ... nun hab ich aber schon öfter hier gelesen das 16 Threads die praktikable Obergrenze sind ( sagt sogar Borland ) !!!

wie bekomme ich dann einen Server hin .... der bedeutend mehr Clients verwalten kann ( bis ca 100-200 ) ?

Oder wie ist diese Obergrenze von 16 Threads zu verstehen ?

Es soll mal ein Gameserver ( für ein MORPG ) werden ...der Positionsdaten...und vieles mehr mit den Clients austauscht.

Hat schon jemand Erfahrung mit einem Server unter Delphi ?

bis dann mal
Hamster
  Mit Zitat antworten Zitat
Nicolai1234

Registriert seit: 21. Feb 2004
1.008 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Macht es Sinn ? Multithreaded Server in Delphi ?

  Alt 31. Okt 2006, 20:04
Zitat von HamsterTrainer:
Macht es Sinn einen Multithreaded Server in Delphi zu Programmieren ?
Nein
Zitat:
Deutsch ist die Sprache der Macher und des Machens. Das fängt bei der Geburt an (den ersten Schrei machen) und endet mit dem Tod (den Abgang machen). Dazwischen kann man das Frühstück machen und die Wäsche, einen Schritt nach vorn und zwei zurück; man kann Pause machen, Urlaub oder blau, eine Reise ins Ungewisse und plötzlich Halt; man kann eine gute Figur machen und trotzdem einen schlechten Eindruck; man kann den Anfang machen, seinen Abschluss machen, Karriere machen; man kann drei Kreuze machen, Handstand oder Männchen machen; man kann die Nacht durchmachen, ein Opfer kalt machen, Mäuse, Kies und Kohle und sich ins Hemd machen; man kann andere zur Schnecke machen und sich selbst zum Affen; man kann sogar Unsinn machen - aber Sinn?
Quelle: Der Dativ ist dem Genitiv sein Tod

Sorry fürs OT
  Mit Zitat antworten Zitat
Benutzerbild von Lemmy1
Lemmy1

Registriert seit: 28. Nov 2004
Ort: Ismaning
184 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Macht es Sinn ? Multithreaded Server in Delphi ?

  Alt 31. Okt 2006, 20:23
Generell würde ich eher zu .Net oder Java tendieren. Managed Code hat gerade bei Servern große Vorteile (Stabilität, Speicherfragmentierung). Außerdem kann man seine Objekte in einen Applikationsserver packen und wird dadurch theoretisch skalierbarer.

Zwischen Java und .Net gibt es auch wieder Vor- und Nachteile: Java ist generell offener und Applikationsserver sind kostenlos. Dafür ist es verglichen mit C# verdammt hässlich (fehlende Properties, schlechtere Source-Docs, schlechtere #regions etc etc).

Ich muss aber zugeben, dass dies "nur gefühlte Erfahrungswerte" (gibt's sowas?) sind. Einen echten Server hab ich mit C# schon geschrieben, nicht aber mit Delphi/Win32...

Nachtrag: Bei so einem komplexen Thema würde ich aber trotzdem sagen: Selber Ausprobieren und viel viel simulieren
Daniel
www.nemu.com - The N64 Emulator
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Macht es Sinn ? Multithreaded Server in Delphi ?

  Alt 31. Okt 2006, 21:19
Um das Problem der Threadanzahl in den Griff zu bekommen, verwendest Du am Besten einen Thread-Pool. Aus einer Menge von z,B, 10-16 Threads wird pro Anfrage (natürlich nicht pro Connection) ein Thread genommen. Ist der Pool leer, weil alle Threads gerade im Einsatz sind, müssen die anderen warten.

Grundsätzlich würde ich aber fertige Lösungen nehmen. Ich stand vor dem gleichen Problem und mittlerweile setzen wir auf Tomcat. Als Übungsaufgabe (und da lernst Du eine MENGE) ist das aber eine interessante Aufgabe.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
snapman
(Gast)

n/a Beiträge
 
#5

Re: Macht es Sinn ? Multithreaded Server in Delphi ?

  Alt 3. Nov 2006, 11:30
Zitat von alzaimar:
Um das Problem der Threadanzahl in den Griff zu bekommen, verwendest Du am Besten einen Thread-Pool. Aus einer Menge von z,B, 10-16 Threads wird pro Anfrage (natürlich nicht pro Connection) ein Thread genommen. Ist der Pool leer, weil alle Threads gerade im Einsatz sind, müssen die anderen warten.

Grundsätzlich würde ich aber fertige Lösungen nehmen. Ich stand vor dem gleichen Problem und mittlerweile setzen wir auf Tomcat. Als Übungsaufgabe (und da lernst Du eine MENGE) ist das aber eine interessante Aufgabe.
Das enttäuscht mich aber sehr....wusste garnicht das Delphi so "mies" ist und nichtmal 17 Threads handeln kann

Wie stehts denn mit Delphi .NET ...hier sollte es ja gehen oder?
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Macht es Sinn ? Multithreaded Server in Delphi ?

  Alt 3. Nov 2006, 11:39
Zitat von Nicolai1605:
Zitat von HamsterTrainer:
...
Nein
Zitat:
...
Sorry fürs OT
You don't think that makes sense?

Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#7

Re: Macht es Sinn ? Multithreaded Server in Delphi ?

  Alt 3. Nov 2006, 11:42
Wenn Du die Indy-Tools nutzt und deren Implementation solltest Du eigentlich keine Probleme haben. Man kann auch mehr als 16 Threads nutzen, dass stellt kein Problem dar. Allerdings sollte man, wie oben bereits gesagt, nicht für jeden Client einen Thread ganzzeitig erstellen, sondern nur zur aktuellen Abfrage. Indy macht das für Dich.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#8

Re: Macht es Sinn ? Multithreaded Server in Delphi ?

  Alt 3. Nov 2006, 12:44
Im PortScanner-Thread hier in der DP habe ich klar gezeigt das man viel mehr als 16 Threads benutzen kann, zb. auf Win2k über 2000 Threads ! Und das in Delphi.

Warum sollte Delphi schlechter sein als JAVA oder C# oder irgendeine andere Sprache wenn es tatsächlich nur um eine Begrenzung im Betriebssystem geht ? Die Frage wäre dann korrekt wenn man "Windows mit zb. Linux" vergleichen würde.

Mit INDY hast du schon die richtige Wahl getroffen. Das unterstützt schon Thread-Pools, berücksichtig die zur Verfügung stehenden Resourcen transparent und autom. Lass dich also nicht verwirren und konfiguriere einfach die INDY Komponenten, fertig.
Davon mal abgesehen ändert ein Thread-Pool nichts an der Limitation der verfügbaren Threads, sondern beschleunigt nur die Re-/Allokation der Threads.

Gruß Hagen
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#9

Re: Macht es Sinn ? Multithreaded Server in Delphi ?

  Alt 3. Nov 2006, 12:50
vieleicht sind threads nicht die richtige archiktektur ?

schau mal in die vorletzte C't dort war etwas über Schachspielen drin.
Dort auf der Seite gab es etwas über die Software zu lesen.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von Lemmy1
Lemmy1

Registriert seit: 28. Nov 2004
Ort: Ismaning
184 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Macht es Sinn ? Multithreaded Server in Delphi ?

  Alt 3. Nov 2006, 12:50
Zitat von negaH:
Warum sollte Delphi schlechter sein als JAVA oder C# oder irgendeine andere Sprache wenn es tatsächlich nur um eine Begrenzung im Betriebssystem geht ? Die Frage wäre dann korrekt wenn man "Windows mit zb. Linux" vergleichen würde.
a) Speicher-Fragmentierung
b) Java nutzt ein eigenes Thread-Management, und setzt nicht auf Betriebssystemthreads auf

Ich sage hiermit nicht, dass Delphi per se schlechter ist. Ich antworte nur auf die Frage, warum es Unterschiede geben KÖNNTE. Ob man sie praktisch spürt sei mal dahingestellt.


Grüße
Daniel
Daniel
www.nemu.com - The N64 Emulator
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz