Hi John,
I'm familiar with some of the results to which Rick is referring. I have also done some of my own tests, mostly on pretty decent NT servers. The results were pretty stunning, and for me, were somewhat counter-intuitive. I mean, we're used to thinking about how much faster RAM is than hard drives, but here are results suggesting that you actually should deliberately employ disk files.
The results vary significantly, depending on numerous factors, but I found that you can often start to see the disk-based approach become faster with strings sizes as low as 10KB. In addition to total size, the number of concats is a huge factor (ie, do you append lots of little strings vs. fewer longer strings).
>I still kling to the notion however that RAM based storage is more efficient than file-based storage. Look at SQL-Server, as soon as it can, it caches to RAM. Subsequent queries are often orders of magnitude faster than prior queries.
I think SQL Server chooses to do this due to the likelihood that the data will be accessed again soon, which I imagine is the rationale behind any caching technology. Further, the data that it caches is atomic (rows, columns, etc), such that it can utilize various highly-tuned random access techniques to use the cache.
OTOH, in some of these messaging scenarios, you are (1) specifically building one-time messages that will never be re-used, and (2) concatenating lots of string information into an often lengthy single message. I think these differences are significant.
FWIW, I have added a class to my VFP framework that serves as a generic text stream handler that I can employ in various scenarios (HTML, XML, MSMQ, etc). It has a couple of tunable threshhold properties that control exactly if and when a disk presence gets used. Very handy.
Regards,
-- Randy
Previous
Reply
View the map of this thread
View the map of this thread starting from this message only
View all messages of this thread
View all messages of this thread starting from this message only