/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Out of memory (Take II)
Fra : Michael Vilhelmsen


Dato : 10-02-03 10:17

Hej

Jeg hr en lille appl. som tilslutter sig en Firebird database.
I denne appl har jeg lavet en rutine, som henter (i dette tilfælde) 228.000
poster.
Den gennemlæber disse poster og for hve enkelt post laver den en updater
eller insert via en Stored Procedure.

I mit specifikke tilfælde får jeg en Out Of Memory fejl, når den er nået til
ca. 190.000 poster.

I Turbo Pascal 7 kunne man sætte et comiler directiv, som allokerede mere
memory til et program.
Kan man gøre noget tilsvarende i D5 ?

Jeg tror nemlig, at det er fordi min appl. selv løber tør for hukommelse
(selvom jeg egentlig troede at Windows og appl. selv styrede dette).

Jeg har endda prøvet at kører min appl. alene på maskinen (dvs. uden nogle
andre programmer kørende).
Det giver samme fejl.

Dette på trods af, at jeg har 512 Mb fysisk ram i maskinen.

Jeg har prøvet at se min task manager, og på det tidspunkt den får fejlen,
har jeg stadigvæk 98 Mb fysisk RAM fri, og 400 - 500 Mb fri i swapfilen.

Michael




 
 
David A. D. Konrad (10-02-2003)
Kommentar
Fra : David A. D. Konrad


Dato : 10-02-03 11:42

"Michael Vilhelmsen" <smom22.remove_this_tekst@tdcadsl.dk> skrev i en
meddelelse news:16K1a.73733

(...)
> Jeg har prøvet at se min task manager, og på det tidspunkt den får fejlen,
> har jeg stadigvæk 98 Mb fysisk RAM fri, og 400 - 500 Mb fri i swapfilen.

Dette lyder som en klassisk BDE-flaskehals. Har du prøvet at justere på
BDE'ens opsætning?

SQLQUERYMODE burde være server

SHAREDMEMSIZE bør nok også justeres.

USAGE LMIT bør du vist også se på.




Michael Vilhelmsen (10-02-2003)
Kommentar
Fra : Michael Vilhelmsen


Dato : 10-02-03 13:46

Jeg benytter ikke BDE.

Jeg bruger Borlands InterbaseExpress comp. som tilslutter sig databasen
direkte.

Michael

"David A. D. Konrad" <david_konrad@hotmail.com> skrev i en meddelelse
news:b27vk2$rrb$1@sunsite.dk...
> "Michael Vilhelmsen" <smom22.remove_this_tekst@tdcadsl.dk> skrev i en
> meddelelse news:16K1a.73733
>
> (...)
> > Jeg har prøvet at se min task manager, og på det tidspunkt den får
fejlen,
> > har jeg stadigvæk 98 Mb fysisk RAM fri, og 400 - 500 Mb fri i swapfilen.
>
> Dette lyder som en klassisk BDE-flaskehals. Har du prøvet at justere på
> BDE'ens opsætning?
>
> SQLQUERYMODE burde være server
>
> SHAREDMEMSIZE bør nok også justeres.
>
> USAGE LMIT bør du vist også se på.
>
>
>



Thor (11-02-2003)
Kommentar
Fra : Thor


Dato : 11-02-03 20:51

Prøv at køre uden Stored Procdure - lav din insert/update direkte
i SQL, - lav CommtRetaining undervejs, hvis det ikke er vigtigt at køre
det hele i een transaktion.

mvh Thomas Riedel, LogiHouse

"Michael Vilhelmsen" <smom22.remove_this_tekst@tdcadsl.dk> wrote in message
news:16K1a.73733$Hl6.7400310@news010.worldonline.dk...
> Hej
>
> Jeg hr en lille appl. som tilslutter sig en Firebird database.
> I denne appl har jeg lavet en rutine, som henter (i dette tilfælde)
228.000
> poster.
> Den gennemlæber disse poster og for hve enkelt post laver den en updater
> eller insert via en Stored Procedure.
>
> I mit specifikke tilfælde får jeg en Out Of Memory fejl, når den er nået
til
> ca. 190.000 poster.
>
> I Turbo Pascal 7 kunne man sætte et comiler directiv, som allokerede mere
> memory til et program.
> Kan man gøre noget tilsvarende i D5 ?
>
> Jeg tror nemlig, at det er fordi min appl. selv løber tør for hukommelse
> (selvom jeg egentlig troede at Windows og appl. selv styrede dette).
>
> Jeg har endda prøvet at kører min appl. alene på maskinen (dvs. uden nogle
> andre programmer kørende).
> Det giver samme fejl.
>
> Dette på trods af, at jeg har 512 Mb fysisk ram i maskinen.
>
> Jeg har prøvet at se min task manager, og på det tidspunkt den får fejlen,
> har jeg stadigvæk 98 Mb fysisk RAM fri, og 400 - 500 Mb fri i swapfilen.
>
> Michael
>
>
>



Michael Vilhelmsen (11-02-2003)
Kommentar
Fra : Michael Vilhelmsen


Dato : 11-02-03 23:14

Jeg har faktisk prøvet uden Stored Procedures.
Det gav samme fejl.

Det var derfor jeg gik over til Stored Procedures.
Ud over det steg hastigheden til det dobbelte.

Og det med éen transaktion er lidt nødvendigt.

Michael
"Thor" <thr@image.danmark> skrev i en meddelelse
news:4Fc2a.79423$Hl6.7615684@news010.worldonline.dk...
> Prøv at køre uden Stored Procdure - lav din insert/update direkte
> i SQL, - lav CommtRetaining undervejs, hvis det ikke er vigtigt at køre
> det hele i een transaktion.
>
> mvh Thomas Riedel, LogiHouse
>
> "Michael Vilhelmsen" <smom22.remove_this_tekst@tdcadsl.dk> wrote in
message
> news:16K1a.73733$Hl6.7400310@news010.worldonline.dk...
> > Hej
> >
> > Jeg hr en lille appl. som tilslutter sig en Firebird database.
> > I denne appl har jeg lavet en rutine, som henter (i dette tilfælde)
> 228.000
> > poster.
> > Den gennemlæber disse poster og for hve enkelt post laver den en updater
> > eller insert via en Stored Procedure.
> >
> > I mit specifikke tilfælde får jeg en Out Of Memory fejl, når den er nået
> til
> > ca. 190.000 poster.
> >
> > I Turbo Pascal 7 kunne man sætte et comiler directiv, som allokerede
mere
> > memory til et program.
> > Kan man gøre noget tilsvarende i D5 ?
> >
> > Jeg tror nemlig, at det er fordi min appl. selv løber tør for hukommelse
> > (selvom jeg egentlig troede at Windows og appl. selv styrede dette).
> >
> > Jeg har endda prøvet at kører min appl. alene på maskinen (dvs. uden
nogle
> > andre programmer kørende).
> > Det giver samme fejl.
> >
> > Dette på trods af, at jeg har 512 Mb fysisk ram i maskinen.
> >
> > Jeg har prøvet at se min task manager, og på det tidspunkt den får
fejlen,
> > har jeg stadigvæk 98 Mb fysisk RAM fri, og 400 - 500 Mb fri i swapfilen.
> >
> > Michael
> >
> >
> >
>
>



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste