[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Slow memory access, Not understood when using integer@(mem address)
[Thread Prev] | [Thread Next]
- Subject: Re: Slow memory access, Not understood when using integer@(mem address)
- From: brian <brian@xxxxxxxxxxxxxxxx>
- Date: Thu, 24 Sep 2026 17:25:15 -0700
- To: user@xxxxxxxxxxxxxxxxxxxxxx
Using the jit with integer@ makes it 1442 times faster. To not using fast. It takes 4 seconds. It is hard to believe that the checks need to be that significant a slowdown. On September 24, 2026 1:12:47 PM PDT, Jussi Lahtinen <jussi.lahtinen@xxxxxxxxx> wrote: >Note that assigning address to structure is not checked at all. >Thus example "Dim bomb As Myint = CPointer(0)" is accepted by Gambas. The >crash happens only when accessing the address (example "Inc bomb"). >So, perhaps Integer@() could cache its checks for it to be faster... but >this could be a lot of trouble for little benefit. Or it could be unsafe as >default like many memory access functions. > > >Jussi > > >On Thu, Sep 24, 2026 at 10:10 PM Jussi Lahtinen <jussi.lahtinen@xxxxxxxxx> >wrote: > >> This: Integer@(mptr) = Integer@(mptr) + 1 >> does a lot more than this: vptr.counter = vptr.counter + 1 >> >> They are not quite equal. >> First one fetches Gambas integer from the memory address twice and then >> adds one. The other one does everything completely within Gambas. IE adds >> one to the variable in Gambas. >> >> >> Jussi >> >> >> >> On Thu, Sep 24, 2026 at 12:03 AM Brian G <brian@xxxxxxxxxxxxxxxx> wrote: >> >>> On 9/23/26 13:36, Brian G wrote: >>> > 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! >>> > >>> Update >>> >>> using fast unsafe the values are interesting so normal is about 1442 >>> times slower than fast unsafe version >>> >>> Hello world >>> Test Speed to Access script Variables using integer@ptr access method, >>> no locking >>> Total time 0.003050090977922 >>> Test Speed to Access script Variables using struct direct access method, >>> no locking >>> Total time 0.041397490072995 >>> Struct access is now 13.5725427118894 times slower..... confusing such a >>> big difference >>> >>> -- >>> ~~~~ Brian >>> >>> ~~~Brian
| Re: Slow memory access, Not understood when using integer@(mem address) | Jussi Lahtinen <jussi.lahtinen@xxxxxxxxx> |
| Slow memory access, Not understood when using integer@(mem address) | Brian G <brian@xxxxxxxxxxxxxxxx> |
| Re: Slow memory access, Not understood when using integer@(mem address) | Brian G <brian@xxxxxxxxxxxxxxxx> |
| Re: Slow memory access, Not understood when using integer@(mem address) | Jussi Lahtinen <jussi.lahtinen@xxxxxxxxx> |
| Re: Slow memory access, Not understood when using integer@(mem address) | Jussi Lahtinen <jussi.lahtinen@xxxxxxxxx> |