As already mention in some previous posts in my Blog I have re-written the whole client / server logic which runs under the hood. Checkout the following post for more information: http://netrsc.blogspot.com/2008/02/threaded-asynchronous-tcp-server-with.html
The client application which is delivered with indeXus.Net Shared Cache contains some Speed test options were I'm able to compare between them now. All in all i have to mention the server is getting quite faster then it was before and for sure more robust. Never thought such a async approach would make that much difference. All in all there are some key changes:
- Server is running as async TCP Server with a custom Threadpool
- Network traffic decreased dramatically between, especially upon server echos
- We take now full advantage of object pooling, so each action from the client in the test application gone use only 1 single "new Socket()" instead of several thousands.
People who have not seen the menu here is a stripdown of the different options.
Speed Tests [200 / 300 range]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
200 - Add 10 objects with the size approx. of 1kb.
210 - Add 100 objects with the size approx. of 1kb.
220 - Add 1000 objects with the size approx. of 1kb.
230 - Add 10000 objects with the size approx. of 1kb.
240 - Add 10 objects with the size approx. of 100kb.
240 - Add 10 objects with the size approx. of 100kb.
250 - Add 100 objects with the size approx. of 100kb.
260 - Add 1000 objects with the size approx. of 100kb.
270 - Add 10000 objects with the size approx. of 100kb.
280 - Add 10 objects with the size approx. of 1MB.
280 - Add 10 objects with the size approx. of 1MB.
290 - Add 100 objects with the size approx. of 1MB.
300 - Add 1000 objects with the size approx. of 1MB.
310 - Add 1500 objects with the size approx. of 1MB.
Just different options which makes it easy to compare with different approaches.
Below we see a table were in almoast every case we could increase the performance. Why we have the 3 marked Get operations which are slower I haven't figured out yet but I promiss I will do so. In generall we can say we have a performance increasment and system & network resource decreasment. With the upcoming version I have implemented some performance counters which will make life easier to compare results between installations.
As we can see we have for the case 100 client calls with 1 kb only better results then before.
As bigger the message (payload) which has to be transferred to the server, as better the results are getting. I was wondering if I have done a calculation mistake but I re-run the whole test 3 times.
It would be very intersting if people would post theire results to compare.
No comments:
Post a Comment