Hi there,

Here I'm trying to save some miliseconds with the Firebird provider 
(using embedded database!)

Well, I've a weird problem and I'd like you to take a look into it.

Well, I'm using the following code to read data from a Firebird database:

     object val;

     while( reader.Read() )
     {
         for( int j = 0; j < reader.FieldCount; ++j )
           val=reader[j];
         // table.Add(count, val);
         ++count;
     }

I'm reading 416310 records.

Well, in my poor-slow laptop it takes 50 seconds to read all data.

The "funny" thing is: did you see the commented out code? Well, it just 
adds the last read field from the record to a hash table. It doesn't 
make any sense, it is just a test case extracted from real code, so 
don't try to find any logic.

Well, the point is: if I uncomment the line -> it takes 158 seconds to 
read the 416310 records!!!

Ok, now you're thinking: yes, that's because adding to the hashtable is 
slow. Check the following code:

             Hashtable table = new Hashtable();

             int ini = Environment.TickCount;

             for( int i = 0; i < 416310; ++i )
                 table.Add(i, new object());

             Console.WriteLine(
                 "Time to add {0} objects = {1} ms",
                 table.Count,
                 Environment.TickCount - ini);

It takes 250 ms (miliseconds!) to add the same number of dumb objects to 
the Hashtable!!

So, somehow, adding records to the Hashtable breaks reader 
performance!!! I'm going crazy, and yes, I've repeated the results on a 
different computer with different OS and I get the same relative results!

If you change the Hashtable by an ArrayList... performance hit goes away!!

Ideas???


Thanks


pablo

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Firebird-net-provider mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider

Reply via email to