Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » wenig leistung

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
05.10.2003, 10:59 Uhr
~RedEagle
Gast


Ich habe ein Programm geschrieben, das folgende eigenschaften hat:

8 Funktionen + Main
ca. 50 Variablen
5 Include's
zugriff auf 4 externe *.txt-Dateien
in c++ geschrieben
Compiler DEV-CPP

Nachdem ich mit dem Programm gearbeitet habe, habe ich das Gefühl, dass mein Pc deutlich langsamer wird:
Eigenschaften meines PC's:

700 Mhz (intel)
128 MB DDRam
Windows 98

Das Programm ist eine Art TAschenrechner für Uhr-Zeiten.

Ich weiß nicht ob der leistungsverlust an meinem Programm liegt, oder ob das zufall ist.
Vieleicht könnt ihr mir ja Helfen (Wenn ja, währen ein Paar lösungswege ganz gut)

Danke im Vorraus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.10.2003, 11:04 Uhr
Oliver
S2-Pixelgeneral


Hallo,

vielleicht hast du irgendwelchen dynamischen Speicher nicht freigegeben.
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
05.10.2003, 11:12 Uhr
~RedEagle
Gast


???Was¿¿¿

Was ist ein dynamischer Speicher
und wie gebe ich ihn frei
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
05.10.2003, 11:56 Uhr
Oliver
S2-Pixelgeneral


Dynamischer Speicher ist Speicher den du zur Laufzeit dynamisch allokiert hast. Mit new (in C++) oder malloc (in C).

Wenn du new genommen hast musst du ihn mit delete freigeben:


C++:
// zeiger
char * dynamisch;

// allokieren
dynamisch = new char[integer_variable];
//... mache was damit

// Am Ende wieder freigeben
delete [] dynamisch;



Und falls du malloc genommen hast, musst es mit free freigeben.
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
05.10.2003, 13:31 Uhr
0xdeadbeef
Gott
(Operator)


Gibt Windows den Heap beim Beenden des Programms nicht automatisch wieder frei?

Hmm. Wenn das nicht so ist, mach mal den Taskmanager auf, bevor du das Programm startest, und schau dir an, wie sich der Speicherverbraucht entwickelt. Wenn er, je länger das Programm läuft, höher wird, leckst du Speicher. Wenn er nicht wieder runtergeht, nachdem du das Programm beendest, liegt dein Problem da. Es sollte mich aber auch bei Windows wundern, wenn das ein derart bescheuertes Speichermanagement fahren würde...
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
05.10.2003, 13:41 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



Zitat:
0xdeadbeef postete
Gibt Windows den Heap beim Beenden des Programms nicht automatisch wieder frei?

Hmm. Wenn das nicht so ist, mach mal den Taskmanager auf, bevor du das Programm startest, und schau dir an, wie sich der Speicherverbraucht entwickelt. Wenn er, je länger das Programm läuft, höher wird, leckst du Speicher. Wenn er nicht wieder runtergeht, nachdem du das Programm beendest, liegt dein Problem da. Es sollte mich aber auch bei Windows wundern, wenn das ein derart bescheuertes Speichermanagement fahren würde...


Was ich bemerkt habe, wenn man DirectX benutzt und das beim beenden seines Programms nicht aufräumt, kann man nach 2-3mal hintereinander den rechner neustarten (je nach größe des ram's)
Fazit: Windows hat ein beschauertes Speichermanagement
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
05.10.2003, 13:58 Uhr
Pablo
Supertux
(Operator)


Mir ist schon dasselbe passiert, wenn ich ein Spiel beende, dann muss ich windows neustarten, weil der Rechner so langsam ist, dass ich 3 Min. brauche, ein Explorer (oder Internet) Fenster zu öffnen. Und das Problem kennen viele.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
05.10.2003, 15:49 Uhr
Oliver
S2-Pixelgeneral


Mir auch:

Ich hab mal ein Programm geschrieben, was bei der WM_PAINT Nachricht immer wieder Speicher allokiert hat und im Taskmanager konnte man förmlich zusehen, wie die MBs stiegen.

Danach hat er's zwar wieder freigegeben, aber war eine kurze Zeit hängen geblieben.

Deswegen dacht ich vielleicht...

@RedEagle:

Zeig am besten mal den Code von deinem Programm!
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: