Max/MSP Test 01 :: [send] vs [pattr] vs [forward] vs [pvar]

I’ve been trying out various methods of passing values around my patches and thought I’d put together a patch to demonstrate the performance of each method.

The Test

Note: This test was performed on Max 6.1.9 32-bit. Future tests will be performed on the latest Max 7 versions.

First off – there are benefits to each method, so there is often more to consider than the speed (especially when dealing with the pattr system). The [value] object sets are not tested here as they require a [bang] to output, so doesn’t quite fit this testing method.

My test jams 100,000 incrementing values using [uzi] through the given method of remote value transfer and displays the time taken to process each step. Each test uses a [sel 100000] to trigger once the test has been completed.

Results

METHODEXECUTION TIME (ms)
Direct5
Send14
Send (streaming value through [number] object)27
Forward18
Send with routing26
pvar19
pvar (with [speedlim] @ 1ms on UI object)6
Pattr receive bound (no bindto on send)319
Pattr receive bound (bindto on send)257
Pattr send bound439
Pattr forwarding223
PattrHub251
Send~ (with [sig~] and [snapshot] @ 1ms)9

Download

Breakdown

I suggest downloading the patch and having it open while you read this section. Alternatively, open the image of the test above to follow as you go.

Click on the tabs below to display each category of the test…

Leave a Reply

Your email address will not be published. Required fields are marked *