Manuel
said: The efficiency of an algorithm is given by its speed and memory consumption. If you have a more efficient implementation it is not more efficient on fast computer but worse for older ones. The algorithm would anyways do the exact same thing, so what flexibility is lost if you find a better algorithm?
Algorithmic efficiency is determined by the algorithm's resource usage , where the resource(s) in question are arbitrarily chosen by the people deciding whether the algorithm is worth utilizing or not. The resources don't necessarily have to be speed and memory. Power consumption is sometimes considered, and transmission size/response time are both important factors for algorithms operating on the web. (Roll20 does chat with its backend server, so there's that consideration, certainly.) I'm sure certain individuals in the world have other criteria, as well. A "more efficient implementation" (not a strictly defined phrase to begin with) is also not necessarily more efficient on all machines. Many algorithms, especially those which operate at low levels, are optimized for specific hardware. An algorithm designed to run more quickly on a vector processor or utilize the capabilities of a parallel processor might , in fact, lose efficiency or possibly even fail on another machine. There are actually quite a lot of implementation factors which -- in high-level computing -- are entirely dependent on the compiler or interpreter... and there are often multiple versions of the compilers/interpreters, whether designed for different operating systems/browsers, different hardware, or simply written by different groups of people. I don't pretend to know exactly how Roll20 is implemented, although I do feel I know more than the average Roll20 user. (I've spoken with Riley about some of it.) However, if Gauss says something might cause a system to chug, I'm inclined to believe him. A friend of mine is working as an adjunct professor at Rice University right now. He's working on figuring out parallelism on crazy parallelized (is that a word?) machines. Your gaming rig has, what? 4 cores? 8? I'm talking about hundreds or thousands of parallel processors. I guarantee that the code he writes to be efficiently paralellized on those kinds of monstrosities will not be efficient on your computer.