Hi All !
I've made an ultra simple remote cache, which I can query by Linq.
The problem is currently, this is a little bit slow and I want to lern
which component can be configured better to enhance performance.
I am using the "Standard Linq Sample" and I am hosting the service component as a singleton.
To get a list of compters from something like this "List<Computer>",
where my total count is a little over 100, I am getting something
between 10 and 15 ms [milliseconds] and I have excluded the
connection time and keep it alive. The server is on a remote computer
[one hop, 1 GB/s network].
If I query a similar list from my Sql Server [remote too, one hop], I am
about ten times faster.
Some help could be great!
Thanks so far and best regards,
Feb 18, 2013 at 5:26 AM
10 ms isn't a bad speed for a RPC call. Zyan is a RPC framework. It is designed to make remote procedure calls.
Compared to Linq2Sql, which is an data access only API, Zyan has more overhead.
Linq2Sql does the LINQ stuff on client. Only the plain resultset from SQL Server is sent over network.
Zyan does the LINQ stuff on server (the LINQ must be parsed and converted to Serializable expressions by Interlink), then the result objects must be serialized (which is bigger than the plain SQL resultset) and on clientside everything must be deserialzed.
The result is your 10 ms.
But you can try the following to improve performance:
- Disable encryption
- Try a different protocol setup (TcpBinary, TcpCustom or TcpDuplex)
Thanks for your answer !
Sad to say, I was not too clear ;-)
I am using Ling to objects - so I came to zyan - not Linq2Sql. My data access
comparing sample was just simple hardcoded sql [using Ado.Net].
I just start thinking, that linq will probably does not make that available, what
I wish [build a queryable cache in contrast to a tuple store]. My last results,
building a average value over about 600 out of 10.000.000 objects does really
need 8 s(econds!!!). A hand-woven loop, just 1 second. Have to learn and
In the next weeks, I'll make other tests with that amout of objects and see.