AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein problem: speicher is voll und prog läuft nich auf allen pcs
Thema durchsuchen
Ansicht
Themen-Optionen

problem: speicher is voll und prog läuft nich auf allen pcs

Ein Thema von moppedfahrer · begonnen am 10. Mär 2007 · letzter Beitrag vom 10. Mär 2007
Antwort Antwort
moppedfahrer

Registriert seit: 8. Mär 2007
28 Beiträge
 
#1

problem: speicher is voll und prog läuft nich auf allen pcs

  Alt 10. Mär 2007, 17:23
Hi
ich habe einen computerspieler für ein kleines brettspiel entworfen, habe aber folgende probleme:
1: bei jedem zug den ich mache knallt sich der arbeitsspeicher mehr und mehr voll (die auslagerungsdate war zum schluss nicht selten 400000K groß !?)

2: es läuft nur auf einigen pcs, obwohl es eine simple Konsolenanwendung ohne jederlei grafik, sound etc. ist ???

hängt das irgendwie zusammen ???
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
471 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

Re: problem: speicher is voll und prog läuft nich auf allen

  Alt 10. Mär 2007, 17:48
Kann es vielleicht seib, das du in deiner Anwendung den Speicher ständig neu Belegst(create) und dann aber vergistt den mit free wieder frei zu geben. Das wäre dann ein klassischer Fall von Memory-Leak.

Check mal ob du auch wieder alles freigibst!

Gruß Matthias
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

Re: problem: speicher is voll und prog läuft nich auf allen

  Alt 10. Mär 2007, 17:53
Wieviel Speicher verbraucht wird, hängt nicht vom Anwendungstyp ab.

Die Ursache und eine passende Lösung kann dir allerdings keiner geben, denn

wie wissen nichts über dein Programm ... weder QuellCodes, oder hilfreiche Auszüge daraus, noch haben wir eine Ahnung was dein Programm überhaupt macht.

Ursachen kann es viele geben:
- dein Programm verbraucht einfach soviel Speicher
* (aber ohne Codes kann auch keiner nach Optimierungen suchen)
- du hast ein Speicherleck (gibt's also reservierten Speicher nicht wieder frei)
- ...


ach ja, wenn es nicht genug freien Speicher gibt und dein Programm dennoch welchen haben will, dann kann es schonmal nicht laufen.
(nicht jeder PC hat gleichviele freie Resourcen)

und "läuft nicht überall" ... was läuft nicht?
gibt's irgendwelche fehlermeldungen, oder ähnliches?
$2B or not $2B
  Mit Zitat antworten Zitat
moppedfahrer

Registriert seit: 8. Mär 2007
28 Beiträge
 
#4

Re: problem: speicher is voll und prog läuft nich auf allen

  Alt 10. Mär 2007, 19:15
ok ich geb zu, dass ich ein bisschen unpräzise war ^^.
Also..
das programm kriegt einen string geliefert, der infos über den "zustand" des spielbrettes enthält.
das ergebnis einer berechnung ist dann wieder ein string, der den zug enthält.
ich habe mir klassen anelegt, die das spielbrett darstellen:

Delphi-Quellcode:
  TSpielbrett = class
  private
    Felder : Array [0..7,0..10] of TFeld;
  public
   ...
usw
Tfeld enthält dann die eigenschaften wie z.b. ob es besetzt ist oder nicht.
es gibt ein globales spielbrett. um einen zug zu finden kopiere ich mir dieses in ein lokales Tspielbrett der jew. prozedur und gehe dann daran meine kriterien ab.
aber am ende einer jeden prozedur mache ich auch wieder free.

das spiel läuft ähnlich wie mühle ... man muss erst setzen und dann ziehen.
beim setzten hab ich nie probleme, aber beim ziehen...

-entweder er schmiert sofort ab wenn er den ersten zug machen soll (project1.exe hat nen fehler festgestellt und muss beendet werden ... microsoft senden??? ja nein vielleicht)

-oder er schafft den zug (wie gesagt rechnerabhängig) und dann braucht er pro zug immer mehr speicher (manchmal gegen ende des spieles gibt es dann wieder einen sprung zurück... etwa von 350000K auf 40000K)

da ich noch nicht so lange dabei bin (1.5 jahre "Schul-Informatik"), bin ich relativ ratlos
ich habe die fehlermeldung bisher immer damit in zusammenhang gebracht, dass ich auf etwas zugreifen will, was es nicht gibt (z.b. TSpielbrett.Felder[8,11]), aber das bin ich auch schon mehrmals durchgegangen...

ich hoffe damit könnt ihr ein wenig mehr anfangen und mir vielleicht bei der lösung helfen ^^
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: problem: speicher is voll und prog läuft nich auf allen

  Alt 10. Mär 2007, 22:42
Moin Moppedfahrer,

ohne Sourcen kann man da nur raten.
Entweder Du belegst Resourcen, die Du nicht wieder freigibst, oder es könnte auch sein, dass Du über die Arraygrenzen hinweg arbeitest.
Hast Du vielleicht einen try/except-Block im Programm, der eine Exeption abfängt, aufgrund derer Resourcen nicht mehr freigegeben werden?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: problem: speicher is voll und prog läuft nich auf allen

  Alt 10. Mär 2007, 23:51
Mit zimlicher Sicherheit hast du bei dir im Quellcode ein "schönes" Speicherleck eingebaut. Das heißt, du forderst Speicher an (Bspw. mit Create) und gibst ihn dann nie wieder frei. Wo genau dieses Speicherleck liegt können wir dir nur sagen, wenn du uns deinen Quellcode zeigst
Lars Kiesow
http://www.larskiesow.de

Computer gehorchen deinen Befehlen, nicht deinen Absichten.
  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 22:24 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