I have tested ajax call performance in the past however now that an end-to-end application for Claude is complete (Web-Kamehameha), it was time to do some more tests. Also, from my last blog post, I was curious to see the results of async vs. sync JavaScript calls as well as various frame rates. I conducted a series of 6 tests by running async and sync tests on 20, 30, and 40 fps. I noticed a strange phenomena while testing kamehameha. As noted earlier in my blog Firefox rendered kamehameha much smoother than Chrome did, however this has recently changed. Firefox now will freeze up after a large number of seconds, around 10. After being frozen for a few seconds, it unfreezes and behaves normally. Chrome's performance has also worsened and has a more consistent rate of dropped frames, albeit still better than Firefox's frame rate when Firefox freezes. However when testing, sometimes Chrome performs smoothly and just fine. Ajax calls execute in about 10-20ms consistently and the rendered video is fine. Other times Chrome lag appears to spike and some calls take up to 300ms. This behavior is typically exhibited immediately on loading the kamehameha page and loading the service calls. Sometimes though it can start smooth or jerky and after a while switch. Normally it would make sense to chalk this up to network performance however Clemson University's wireless internet has a whopping 40mbs up/down and < 20ms ping. It seems unlikely a spike in network traffic couldn't still be handled by the network here but its possible.
Another factor is my setup. I was running Claude on my desktop (specs listed in a previous blogpost) and ran Web-Kamehameha (server) on an old Dell Optiplex 755. I used my netbook (hp dm1) to access the kamehameha front-end (client). Being a netbook, I don't get the best performance when rendering kamehameha at 40+fps however I ran all components on my desktop, which has more than competent hardware for the task at hand, and still experienced spikes of jerky laginess which leads me to believe it is something to do with the browsers themselves. Nonetheless, rather than try to control this behavior, it simply has become part of the results. I'm not posting the results yet but I did record ajax call times as well as the order in which they started and stopped. I will probably analyze the results at some point in the future but for now am moving on to work on an application that combines the abilities of Claude with that of Tyler (see blog here).
No comments:
Post a Comment