I have a CGI.exe that produces results from a "database". The results are up to 60Mb in size and are returned to the PB client app that requested them.
The results can be thought of as one big STRING that is parsed by the client.
I decided to break the string up into packets of say 64k (give me a better number) and have the client request them one at a time (give me a better idea)
So, while this time consuming xfer is goin on, 60Mb of server memory is tied up. So what you say. Now imagine 100 or even 1000 users at once.
Two problems arise
-Efficient usage of memory
-Handling out of memory situations
Assuming the IIS server will handle the out of memory, I want to make the best use of memory I can.
I have two ways to store the data:
-A continuous sequence of bytes in a BYTE array or STRING
-A linked list of packets where each node is only 64k of continuous bytes
Now without knowing anything about server firmware, IIS and memory management in general, it appears that there might be more 64k 'slots' available than 60MB 'slots' when the loading gets high?
If that is the case then I can design my CGI.exe to hold the data in a linked list rather than a STRING.
Do I have the concept right?
The results can be thought of as one big STRING that is parsed by the client.
I decided to break the string up into packets of say 64k (give me a better number) and have the client request them one at a time (give me a better idea)
So, while this time consuming xfer is goin on, 60Mb of server memory is tied up. So what you say. Now imagine 100 or even 1000 users at once.
Two problems arise
-Efficient usage of memory
-Handling out of memory situations
Assuming the IIS server will handle the out of memory, I want to make the best use of memory I can.
I have two ways to store the data:
-A continuous sequence of bytes in a BYTE array or STRING
-A linked list of packets where each node is only 64k of continuous bytes
Now without knowing anything about server firmware, IIS and memory management in general, it appears that there might be more 64k 'slots' available than 60MB 'slots' when the loading gets high?
If that is the case then I can design my CGI.exe to hold the data in a linked list rather than a STRING.
Do I have the concept right?
Comment