New version 126.96.36.199 of ADO.NET provider for Firebird is ready for download. Among regular bug fixes and improvements I’d like to talk about one performance improvement done in this version.
When the providers talks to the server there’s a lot of numbers read. And all these numbers are coming as 4 bytes (for 32-bit integers), hence 4 bytes buffer is needed. But it would make sense to reuse it, right? And that’s exactly what has been done. The buffer is kept in memory and being reused for
Int64s. To measure the impact I did fairly synthetic test of fetching 200k rows with just one number column and the Gen0 allocations went down from 41000 to 22500 and allocated memory from ~124MB to ~68MB. I think that’s worth having 8 bytes “dangling” in the memory. 😎
Overview of all the changes can be found in tracker.