Subject | memory-release problem ? |
---|---|
Author | xspileers |
Post date | 2005-09-26T00:00:14Z |
Hello,
I'm having a problem, and am wondering if anybody else noticed it
also. As it's something quite obvious, I guess I'm doing something
wrong and it is not a bug.
My configuration:
Firebird 1.5.2 running as superserver, default configuration
Microsoft VS2005 beta
Windows XP Pro, SP2
512 Mb RAM, P4 2.8 Ghz
The problem: when adding rows to my database I notice the amount of
RAM getting higher and higher very fast. This happens when using the
.NET classes and also the ODBC-driver. At one point I had a database
of 7Mb and fbserver.exe consumed about 150Mb of RAM (about 20 times
more !). Detail: every added row has its own transaction and after
every write, the transaction is commited. I'm not using 1 big transaction.
When closing the application, the memory was released. So of course,
my first thought was that the problem was due to .NET and I added
everywhere possible .Dispose() and GC.Collect().
But when running another test I noticed that the memory was no longer
released -> FlameRobin was open. Only when I closed FlameRobin the
memory was released.
So it seems to me that:
a) FireBird does not seem to limit its RAM usage to the amount of
allocated buffers (2048 * 4096Kb)
b) there is a problem with the release of memory as long as there are
connections to the database
Is there anyone who has experienced the same and eventually propose a
solution?
I'm having a problem, and am wondering if anybody else noticed it
also. As it's something quite obvious, I guess I'm doing something
wrong and it is not a bug.
My configuration:
Firebird 1.5.2 running as superserver, default configuration
Microsoft VS2005 beta
Windows XP Pro, SP2
512 Mb RAM, P4 2.8 Ghz
The problem: when adding rows to my database I notice the amount of
RAM getting higher and higher very fast. This happens when using the
.NET classes and also the ODBC-driver. At one point I had a database
of 7Mb and fbserver.exe consumed about 150Mb of RAM (about 20 times
more !). Detail: every added row has its own transaction and after
every write, the transaction is commited. I'm not using 1 big transaction.
When closing the application, the memory was released. So of course,
my first thought was that the problem was due to .NET and I added
everywhere possible .Dispose() and GC.Collect().
But when running another test I noticed that the memory was no longer
released -> FlameRobin was open. Only when I closed FlameRobin the
memory was released.
So it seems to me that:
a) FireBird does not seem to limit its RAM usage to the amount of
allocated buffers (2048 * 4096Kb)
b) there is a problem with the release of memory as long as there are
connections to the database
Is there anyone who has experienced the same and eventually propose a
solution?