Hallo, carmen hat gesagt: // carmen wrote:
its a nice ideal, but i cant help but think we'd end up with something performing more like ruby than a realtime media system if 'everything is an abstraction' and the core just defined syntax. i mean the few times i rewrote things in pd - [hsv2rgb] and [sprintf]
- they ended up about 10 times slower.. and thats not even dealing
with a fraction of the bandwidth of audio or video..
Of course we all know, that patched stuff id Pd is slower than coding stuff in C. Still we patch in Pd, why do we do it? Because performance is not all that matters, ease of programming, the ability to change an implementation on the fly etc. - all that is important as well and it is the major reason, scripting languages are taking over large parts of software development: The performance of the programmer is becoming the much more important bottleneck than the performance of the CPU.
Of course this shouldn't stop us from trying to sort out the bottlenecks in our patches and where those can be fixed by coding a C external.
For example, when patching the [list]-abs I found, that I am using the serialize operation [list-drip] *a lot*. I now did a benchmark and saw, that serializing as done in the help patch is slower by a large deal than the equivalent operation in Zexy. (Benchmark patches attached). So including a [list serialize] or [list drip] in MAIN-Pd would give a big performance boost. OTOH it is possible to get this boost right now, if it's important, by replacing the serialization in [list-drip] with zexy's drip. As all [list]-abs use the [list-drip] abstraction, this will accelerate all of them immediatly.
Frank Barknecht _ ______footils.org_ __goto10.org__