Home > Articles > Programming > Windows Programming

  • Print
  • + Share This
From the author of

Results of the Throughput Tests

I re-executed all tests with the GUI, but this time with a setup different from that used in the previous articles. I used only one single machine for everything, so "cross machines" actually means "cross AppDomains" instead. The test results are as before, but what is really important is that you run tests on your own. With real stuff instead. Results from simple tests (such as those following) give only a hint about what you can expect. Nothing more.

Okay, here goes... As usual, all throughput values are recalculated with the values for DataReader as the base. The higher the values, the better. The values within parenthesis are from the tests executed in Parts 1–4.

Table 1—Read One Row

 

One User in AppDomain

One User, Cross Machines

DataReader

1

1

Untyped DataSet

0.6 (0.6)

1.5 (1.4)

Typed DataSet

0.5 (0.4)

1 (1)

Wrapped DataSet

0.6 (0.5)

1.5 (1.3)

Hashtable

1 (0.9)

3.7 (3.5)

Custom Classes

1 (1)

4.1 (4)

New Architecture

1

3.8


Table 2—Read Many Rows

 

One User in AppDomain

One User, Cross Machines

DataReader

1

1

Untyped DataSet

0.7 (0.5)

9.1 (6.9)

Typed DataSet

0.5 (0.5)

8 (6)

Wrapped DataSet

0.6 (0.5)

8.9 (6.6)

Hashtable

0.9 (0.8)

24.4 (17)

Custom Classes

1 (1)

22.3 (15.9)

New Architecture

0.9

20


Table 3—Read One Master Row and Many Detail Rows

 

One User in AppDomain

One User, Cross Machines

DataReader

1

1

Untyped DataSet

0.6 (0.5)

8.2 (6.1)

Typed DataSet

0.5 (0.4)

6.6 (5.1)

Wrapped DataSet

0.6 (0.5)

7.9 (5.8)

Hashtable

0.9 (0.8)

24.4 (16.2)

Custom Classes

1 (0.9)

23.4 (16)

New Architecture

0.9

20.8


NOTE

Something happened to one of the machines I used when running the tests for Parts 1–4 six months ago. It works, but it is soooo slow. So I would have had to switch that machine in the test setup. If I did so, something had changed (together with a lot of small things, of course, such as new versions of this and that). Therefore, I thought it was interesting to show the results from a completely different test environment instead.

To summarize the test results: It's pretty obvious that the New Architecture has performance characteristics that are so far pretty close to the simplified Custom Classes tests. That is very good news. I'm satisfied with that for the moment.

Also worth mentioning is that all tests except the DataReader gain from the setup used here (one single machine instead of several machines that cooperate). It's especially obvious regarding cross machines (or cross AppDomains). My conclusion about why we get this result is that marshalling data is less expensive cross AppDomains relative cross machines, than several small calls (which is the case when the DataReader is used) cross AppDomains relative cross machines.

  • + Share This
  • 🔖 Save To Your Account