This in reply to something birchy said in a different thread but i thought should be discussed separatly. He mentioned internet speeds being the biggest bottleneck. I've done alot of profiling looking at call times for different functions. Im not sure where some of the the time spent. Basically a price call takes in order of 300ms to 400 ms to run (java + axis + soap). Hence on a single thread you can only do about 2x per second. You can obviously improve this but run into to interesting sync issues if you have 10 stagered threads running to get 20x. What im wondering is where the 400ms is spent.
As i see it,
1. Conversion from Object to soap msg
2. Transmission to bf
3. Conversion from soap msg into Object
4. Price function call in bf
5. Results converted to soap msg
6. Transmission from bf
7. Conversion from soap msg into price Object
I spose in jotting that out theres quite a lot to be done, however it concerns me that no matter how many threads you use, you are always looking at a market snapshot thats at least 400ms out of date. If you're trading off that then a place bet call means you are trading on a price that is at least 600ms (assuming the place bet takes 200ms to get the bf). This is also why i think the internal scalpers at betfair are so successful.
How long does it take to get prices via the screen scraping method?
