AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Maximale Threadanzahl / Anzahl der Threads für Programm / Prozeß erhöhbar?
Thema durchsuchen
Ansicht
Themen-Optionen

Maximale Threadanzahl / Anzahl der Threads für Programm / Prozeß erhöhbar?

Ein Thema von Delphi-Laie · begonnen am 22. Nov 2014 · letzter Beitrag vom 25. Nov 2014
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Maximale Threadanzahl / Anzahl der Threads für Programm / Prozeß erhöhbar?

  Alt 22. Nov 2014, 17:20
Jeder Thread hat einen Stack und irgendwann ist eben kein Speicher mehr da.

http://blogs.msdn.com/b/oldnewthing/...29/444912.aspx
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#2

AW: Maximale Threadanzahl / Anzahl der Threads für Programm / Prozeß erhöhbar?

  Alt 22. Nov 2014, 17:26
Jeder Thread hat einen Stack und irgendwann ist eben kein Speicher mehr da.

http://blogs.msdn.com/b/oldnewthing/...29/444912.aspx
Das hilft mir schonmal sehr weiter, besten Dank! D.h., wenn man die Stackgröße erhöht, dann hat man auch die Chance, daß mehr Threads gestartet werden können, nicht wahr?
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#3

AW: Maximale Threadanzahl / Anzahl der Threads für Programm / Prozeß erhöhbar?

  Alt 22. Nov 2014, 18:00
So, ich habe selbst erfolgreich herumexperimentiert: Man muß die maximale Stackgröße verringern, dann passen auch mehr Threads in den Prozeß (bildlich gesprochen).
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#4

AW: Maximale Threadanzahl / Anzahl der Threads für Programm / Prozeß erhöhbar?

  Alt 23. Nov 2014, 04:45
Für genauere Infos zu den internen Abläufen dazu, siehe diesen Blog-Eintrag. Allerdings muss man auch trotz dieser berechenbaren Dinge aufpassen, da die letztendliche Anzahl stark mit davon beeinflusst wird, wie viel Speicher der Elternprozess bereits nutzt, und wie stark dieser fragmentiert ist. Wenn man also nicht 100% weiss was der Delphi MM tut, und dieses voll deterministisch auf den eigenen gesamten Code angewended quatifizieren kann, wird eine harte feste definitive theoretische Zahl mit praktischer Relevanz ziemlich unmöglich.

In einem Stackoverflow-Thread habe ich auch noch die Aussage gefunden (auf 32 Bit Prozesse bezogen):
Zig: Quasi immer möglich
Hunderte: Vermutlich meistens okay, je nach dem
Tausende: Fast nie erfolgreich

Ich denke, mit deinen 1000-1500 bist du schon recht nah an der praktisch möglichen Grenze für den allgemeinen Fall.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#5

AW: Maximale Threadanzahl / Anzahl der Threads für Programm / Prozeß erhöhbar?

  Alt 23. Nov 2014, 09:22
Danke!

Ich denke, mit deinen 1000-1500 bist du schon recht nah an der praktisch möglichen Grenze für den allgemeinen Fall.
Ich weiß nicht, was genau alles auf dem Stack abgelegt wird - Variablen gewiß, aber auch Code? Gerade bei letzterem wäre der Stack viel eher gefüllt.

Für mich ein Grund mehr, den Stack nicht zu mögen, der war mir noch nie sympathisch. Jetzt tut sich sogar noch ein Zielkonflikt auf: Threadanzahl versus Rekursion.

Was schätze ich deshalb stack-, konkreter rekursionsbefreite Algorithmen, nur, in diesem Falle geht es wohl nicht ohne Stack, und diese "Stellschraube" zur Erhöhung der Threadanzahl war mir vorher auch gar nicht bekannt.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#6

AW: Maximale Threadanzahl / Anzahl der Threads für Programm / Prozeß erhöhbar?

  Alt 23. Nov 2014, 13:46
Für mich ein Grund mehr, den Stack nicht zu mögen, der war mir noch nie sympathisch.
Das ist irgendwie schon eine lustige Aussage
Der Stack ist einfach eine (ziemlich effiziente) Datenstruktur zur Speicherverwaltung.

Ich weiß nicht, was genau alles auf dem Stack abgelegt wird.
Im Grunde Argumente, Rücksprungadressen und lokale Variablen (+ temporäre Zwischenergebnisse). In der Regel kein Code.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#7

AW: Maximale Threadanzahl / Anzahl der Threads für Programm / Prozeß erhöhbar?

  Alt 23. Nov 2014, 15:39
Steht alles in dem verlinkten Artikel.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz