|
-
Nov 15th, 2002, 06:39 AM
#1
Thread Starter
Hyperactive Member
Activex.exe, speed of data access
So, after a great deal of help from the guys on this forum I finally have my Activex.exe running as a data server to my client applications.
The problem now is the speed of data access.
It takes approximately 15 mS for a client to access a single property from the server.
I can't believe this is correct.
Has anyone hit a similar problem?
I've already searched the forum and found a thread started by Wakawidget (are you there?) which hints at a similar problem but no solution was posted.
Here is the thread :
http://www.vbforums.com/showthread.p...=activex+speed
Simon Caiger
Documentation is like sex; when it's good, it's very, very good, and when it's bad, it's better than nothing.
-
Nov 15th, 2002, 03:40 PM
#2
Addicted Member
I'm not surprised. Running a server as an Out of Process Server is going to require more data marshalling, memory space, etc.
-
Nov 18th, 2002, 04:09 AM
#3
Thread Starter
Hyperactive Member
I agree,
I started this project knowing that running out of process was going to be slower but I didn't know how slow.
Are you saying that 15mS to get a single property is the sort of figure I should expect?
It just seems very slow to me even running on a 200 MHz PII with 32 meg Ram (this is the minimal client machine spec).
Does anyone out there have any figures I can compare against?
Simon Caiger
Documentation is like sex; when it's good, it's very, very good, and when it's bad, it's better than nothing.
-
Nov 18th, 2002, 04:31 PM
#4
Addicted Member
I don't have the requested figures, but I do have a suggestion. Perhaps something in your application architecture could be reworked to improve performance. IE, instead of reading the properties of an out of process object indivudually, pass the whole object through to your application and then read the properties using the in process copy. Just a thought.
-
Nov 19th, 2002, 03:44 AM
#5
Thread Starter
Hyperactive Member
Thanks for the suggestion Sheppe,
What I have done is broken the data down into logical report structures and am using function calls from the clients to pass back arrays containing the data. I therefore only need one call per report which still only takes about 15ms.
I could pass back one massive array but I wanted the data to be easily managed by the clients.
I had a good discussion with Wokawidget yesterday, he suggested using a buffering technique. I will come back and try this when time permits.
I initially thought that I could set the whole thing up to access the data individually (object.property) just like properties of an ActiveX control.
This is my first adventure into the world of COM so I really didn't know what data access time to expect, I just wasn't expecting it to be as slow as 15ms.
I have built my project as a .dll and as expected it runs much faster (100 properties in 6ms).
As I understand it, I have to use the .exe route if I want to use DCOM (which some of my customers will require). I will probably offer both components in the product to give clients running on the local machine the chance of benefiting from the .dll speed advantage.
Simon Caiger
Documentation is like sex; when it's good, it's very, very good, and when it's bad, it's better than nothing.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|