🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: borland.public.optimizeit.net.general
1 messages
1 total messages Started by G. E. Sutton Wed, 30 Mar 2005 18:44
Trustworthiness of reported times
#55
Author: G. E. Sutton
Date: Wed, 30 Mar 2005 18:44
51 lines
3598 bytes
I am testing an application which does batch processing of records in a
database. I run the test against 75 records from the DB; I have two ways of
connecting to the DB that I am trying to compare.  My test fixture is a
VB.Net console application which invokes methods from my compiled dll's.

When I run the two versions (once using each of the two connection methods)
under OptimizeIt's Profiler, I get very suspicious numbers; a 18:1
performance difference.  At first I thought the difference was due to one
method being many times more efficient than the other, but I was suspicious
and ran both outside of the Profiler. If I time the two executions  manually
(on my watch) they both complete in about three minutes--give or take a
second or two.

As far as the Profiler numbers are concerned, running the first version
reports a total processing time of 177,000 ms which is close to the three
minutes I get manually. But the second version reports 10,000 ms --well
below any reasonable measurement I make outside of the Profiler.  Multiple
repetitions of the tests yield similar results, I even created a "Windows
form" test fixture to see if the console application was causing a problem
(the Profiler never launches the application's console; which suggests a
problem and is a bit of a pain, but I'll post that separately)--but the
great disparity between the two execution times remained.

Any idea what is going on here? I hesitate to tweak an application based
upon test results that I find suspicious and are not indicative of execution
times outside of the Profiler (I would expect the ratio of execution times
to remain constant inside and outside of the Profiler; now I am getting an
almost 1:1 execution time of version1:version2 outside of the Profiler and
an 18:1 difference when running inside the Profiler).

FWIW here is the connection code I am changing between the two versions of
the application.  This is buried deep within the execution tree and is not
part of the test fixture console application; I include it simply to dispel
any ideas that the change itself is dramatically affecting the Profiler
(which I would hope this wouldn't):

Version1:
Dim oDs As DataSet
oDs = _oraHelper.ExecuteDataset(myConnectVals.MY_APPNAME, _
                                CommandType.StoredProcedure, _
                                inSP.PKG_SP_NAME, _
                                inSPparms)
'( _oraHelper being an instance of an object from an Oracle supplied
library)

'version2:
'Dim oDs As DataSet
oDs = ExecuteDataset(myConnectVals.MY_APPNAME, _
                     CommandType.StoredProcedure, _
                     inSP.PKG_SP_NAME, _
                     inSPparms)
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads