Issue Details (XML | Word | Printable)

Key: DNET-622
Type: Improvement Improvement
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Jiri Cincura
Reporter: Alexander Muylaert-Gelein
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
.NET Data provider

Performance optimization for FbCommand.LogCommand

Created: 12/Aug/15 11:00 AM   Updated: 17/Sep/15 11:22 AM
Component/s: ADO.NET Provider
Affects Version/s: 4.7.0.0
Fix Version/s: 4.8.0.0

File Attachments: 1. Text File code.txt (2 kB)

Image Attachments:

1. FirstOptimization.png
(62 kB)

2. SecondOptimization.png
(54 kB)

3. Start.png
(62 kB)
Issue Links:
Relate
 


 Description  « Hide
Hi

I noticed that the emitting of the trace code is relatively slow. It takes a few percentages (6%) of the total duration of a restore script. Including Localhost traffic to the database.
First I disabled all the listeners inside the app config. This brought it down to 0.7% of the total time needed to rescript the db.
I propose one additional minor tweak to prevent formatting the message at all. That brings the required processing time down to 0.088%.



 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Jiri Cincura added a comment - 12/Aug/15 01:31 PM
What an improvement! :) Anyway, it's there.

Baldur Fürchau added a comment - 31/Aug/15 09:42 AM
Hello,

i must say that the tracecode is absolutly slow!
In the original sourcecode (4.7.0.0) is have added a static property for DebugTrace on/off.
The Command-Object itselfs check this property before issueing the traceoutput.
Now i have checked the improvement (i run the compiled build not in the die so i have no tracelistener).
In my solution i Need to copy a complete table from one database to another.
If you have more fields to insert the Performance slows down dramaticalliy, for example:

Table with 100 Columns:
with Trace on 2694 Inserts per second.
with Trace off 4459 Inserts per second.

To configure the trace only in the application manifest is not a solution.
The improvement is roundabout 70% !!!!!

I don't want to make my own release-build if it is also simple to make a configurable property or method.

Tested on Notebook I7-64 Bit Windows 8.1, 2,2 Ghz.