Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


advertisement
 

Object Creation Under Windows NT4 and Windows 2000 : Page 2

Do you have an application which is running sluggishly under Windows NT4 / MTS, not providing quite the performance you expect? Are you thinking about porting it to Windows 2000 / COM+ in order to achieve a performance boost? Be very careful. Depending on why your application is not performing up to speed under NT4, you may not experience any performance gain by migrating to Win2K. You might very well see a performance drop. A significant performance drop. In this article Joseph Geretz will show you all the do's and don'ts of the subtle art of object creation under Windows NT and 2000.


advertisement

For our first suite of benchmarks we’ll use the Windows driver just to test raw class creation and collection access. Of course, these numbers won’t directly map into a multi-user scenario where concurrency will be an issue. We’ll get into concurrency later on when we’ll use the Web Application Stress Tool to drive our ASP benchmark script.



First a few points about class creation and access. Both of the cases above created a collection of 1000 objects. The second case on the right performed a Cross-Tier creation request, meaning the Windows driver called in to the middle tier for each and every class creation and object access. For this benchmark, both the driver and the middle tier classes were installed on the same server. Obviously, this degradation would be even more exaggerated if the Windows driver was deployed remotely, across a hardware boundary from the middle tier, as is usually the case. You can see how this cross tier construct has a radical negative impact on performance for a tiered architecture.

You'll see this performance degradation where the middle tier components are deployed remotely from its clients, or where it is installed to MTS/COM+ on the same machine as its clients. Where the DLL is installed locally with the driver, and is simply registered, but not configured in either MTS or COM+, you won’t notice any difference (I tested up to 10,000 objects). Of course, if the Windows driver would be accessing the components remotely, via DCOM, then you’d certainly see a performance difference due to network latency for each communication between the client and the server.

Therefore, in a tiered scenario, wherever possible, allow server  processing to take place independently of its client. In other words, let the client pass in enough information immediately, so that the server can perform the requested task and return the results to the client in a single transaction.

We won’t discuss cross tier performance any more in this article since in our context, and generally speaking in an n-tier scenario, the cross tier construct usually represents a deficient software architecture. All of the numbers presented below are generated using the n-tier paradigm where the client makes a single call in to the server layer, all processing is performed by the server, and the results are finally returned back to the client.

OK, here are the numbers for raw object creation and access. All tests were tested on the exact same hardware platform, a PentiumII 450Mhz, with 256 Megs RAM. For raw object creation I deployed both the Windows driver and the server classes on the same PC. Since all object creation and access takes place in the server layer, during this operation the Windows driver is simply idling and not consuming any significant resources. (Later when we get into concurrency tests, I’ll be driving the Web Application Stress Tool on a separate client workstation.) Here are the numbers to create and access a collection of 1,000 objects:

Raw Object Creation Scenario

 

 

Access Loops

 

Scenario

Creation

For Each

Sequential

Keyed

Destruction

NT4, Non-Configured

200 ms

10 ms

20 ms

30 ms

10 ms

NT4, MTS Library

270 ms

10 ms

30 ms

20 ms

81 ms

W2K, Non-Configured

500 ms

0 ms

30 ms

10 ms

10 ms

W2K, Library Defaults

8953 ms

40 ms

70 ms

60 ms

150 ms



Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date