[PD] array copy speed test

Frank Barknecht fbar at footils.org
Mon Jul 31 22:47:13 CEST 2006


Hallo,
Enrique Erne hat gesagt: // Enrique Erne wrote:

> >So I did a little speed test between C and Pd for doing an 
> >array-to-array copying.  Pd didn't fair so well.  Can anyone thing of 
> >a better algorithm for copying in Pd?
> >
> >.hc
> >
> 
> added zexy/tabdump and zexy/tabset to copy the array, but it arraycopy 
> is much faster.

And I added an alternative version of writing values to an array
inside Pd by just sending "index value(s)" lists to the array name. 

Interestingly this is a little bit faster than using [tabwrite]. It
maybe could be made even faster by writing more than one value in one
go.

Ciao
-- 
 Frank Barknecht                 _ ______footils.org_ __goto10.org__
-------------- next part --------------
#N canvas 339 22 648 425 10;
#N canvas 0 22 450 300 graph22 0;
#X array array1 1e+06 float 2;
#X coords 0 1 1e+06 -1 200 140 1;
#X restore 43 53 graph;
#N canvas 0 22 450 300 graph22 0;
#X array array2 1e+06 float 2;
#X coords 0 1 1e+06 -1 200 140 1;
#X restore 267 52 graph;
#N canvas 52 54 493 421 arraycopy 0;
#X msg 218 136 0;
#X obj 168 123 until;
#X obj 188 159 float;
#X obj 231 160 + 1;
#X obj 188 221 tabread array1;
#X obj 216 248 tabwrite array2;
#X obj 168 36 inlet;
#X msg 168 90 1e+06;
#X msg 31 6 bang;
#X obj 33 38 arraysize array1;
#X msg 34 60 set \$1;
#X obj 168 63 trigger bang bang;
#X obj 188 195 trigger float float;
#X connect 0 0 3 0;
#X connect 0 0 2 1;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 0 12 0;
#X connect 3 0 2 1;
#X connect 4 0 5 0;
#X connect 6 0 11 0;
#X connect 7 0 1 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 7 0;
#X connect 11 0 7 0;
#X connect 11 1 0 0;
#X connect 12 0 4 0;
#X connect 12 1 5 1;
#X restore 251 355 pd arraycopy;
#X obj 504 149 soundfiler;
#X obj 505 106 openpanel;
#X msg 505 126 read \$1 array1;
#X msg 505 84 bang;
#X obj 151 286 realtime;
#X floatatom 151 306 9 0 0 1 ms - -;
#X obj 229 245 t b b b;
#X obj 341 240 t b b b;
#X msg 229 224 bang;
#X msg 341 220 bang;
#N canvas 52 54 493 421 arraycopy2 0;
#X msg 218 136 0;
#X obj 168 123 until;
#X obj 188 159 float;
#X obj 231 160 + 1;
#X obj 316 219 tabread array1;
#X obj 168 36 inlet;
#X msg 168 90 1e+06;
#X msg 31 6 bang;
#X obj 33 38 arraysize array1;
#X msg 34 60 set \$1;
#X obj 168 63 trigger bang bang;
#X obj 188 195 trigger float float;
#X obj 188 266 s array2;
#X obj 188 244 pack 0 0;
#X connect 0 0 3 0;
#X connect 0 0 2 1;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 0 11 0;
#X connect 3 0 2 1;
#X connect 4 0 13 1;
#X connect 5 0 10 0;
#X connect 6 0 1 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 6 0;
#X connect 10 0 6 0;
#X connect 10 1 0 0;
#X connect 11 0 13 0;
#X connect 11 1 4 0;
#X connect 13 0 12 0;
#X restore 363 356 pd arraycopy2;
#X obj 383 290 cputime;
#X floatatom 383 311 9 0 0 1 ms - -;
#X text 360 382 Strangely this one is faster on my machine;
#X connect 4 0 5 0;
#X connect 5 0 3 0;
#X connect 6 0 4 0;
#X connect 7 0 8 0;
#X connect 9 0 7 1;
#X connect 9 0 14 1;
#X connect 9 1 2 0;
#X connect 9 2 7 0;
#X connect 9 2 14 0;
#X connect 10 0 7 1;
#X connect 10 0 14 1;
#X connect 10 1 13 0;
#X connect 10 2 7 0;
#X connect 10 2 14 0;
#X connect 11 0 9 0;
#X connect 12 0 10 0;
#X connect 14 0 15 0;


More information about the Pd-list mailing list