[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Slow memory access, Not understood when using integer@(mem address)


I have attached a small project that tests the access speed to memory using integer@(memory address), as used for Linux library interfaces. I am sorry but 44 times slower than access through a struct pointer is just a bit much to accept!
Using this structure and allocating a data space
Public Struct myint
    counter As Integer
End Struct
mptr=alloc(100)
Here is an example using integer@(xx) compared to accessing thru a structure 1 million times

Test Speed to Access script Variables using integer@ptr access method, no locking
using: Integer@(mptr) = Integer@(mptr) + 1
Total time 4.40942561195698

Test Speed to Access script Variables using struct direct access method, no locking
dim vptr as myint = mptr
using: Inc vptr.counter and tested with vptr.counter = vptr.counter + 1, same results
Total time 0.098687710007653

Struct access is 44.6810829482192 times faster than integer @ access to the same memory address

Can this be fixed, it is pretty bad!

--
~~~~ Brian

<salt FCKGM-0001-545B-35DB-266D>
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
</salt>

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature