Przemyslaw,

if we have a thread object and/or a thread local storage area we could call
_gettid() on thread start and save this value which never changes during
thread life.

This saves us a Dos... call every time we need the thread id.

Does this make sense?

Maurilio.

PS. We could also have space for user/cpu times in that area so that we can
write there on thread end and they would be available even after thread end
when the Dos... api call cannot find the thread id anymore.

Przemysław Czerpak wrote:
> On Fri, 26 Mar 2010, David Arturo Macias Corona wrote:
> 
> Hi,
> 
>> Tested with:
>> - * $Id: ChangeLog 14234 2010-03-25 23:44:10Z druzus $
>>  2010-03-26 00:44 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
>> - OpenWatcom 1.8 for OS/2
>> on a computer with Core2Duo E8400 3 Ghz
>> Summary results for:
>> ST
>> ==
>>  speedtst
>> [ total application time: ]....................................18.39
>> [ total real time: ]...........................................18.38
>>
>> MT
>> ==
>>  speedtst
>> [ total application time: ]....................................26.58
>> [ total real time: ]...........................................26.70
>>
>>  speedtst --thread
>> [ total application time: ].....................................0.26
>> [ total real time: ]...........................................26.48
>>
>>  speedtst --thread=2 --scale
>> [ total application time: ].....................................0.23
>> [ total real time: ]..........................................105.04
>>
>> speedtst.txt content included below
>>
>> Few hours later, same tests with older Harbour 14189:
>> ST
>> ==
>>  speedtst
>> [ total application time: ]....................................18.61
>> [ total real time: ]...........................................18.67
>>
>> MT
>> ==
>>  speedtst
>> [ total application time: ]....................................26.87
>> [ total real time: ]...........................................26.85
>>
>>  speedtst --thread
>> [ total application time: ].....................................0.26
>> [ total real time: ]...........................................26.79
>>
>>  speedtst --thread=2 --scale
>> [ total application time: ].....................................0.16
>> [ total real time: ]..........................................107.76
> 
> Thank you very much for your tests.
> 
> Looks that new code is a little bit faster though the recursive spinlocks
> introduce some small but noticeable speed overhead. Probably due to cost
> of _hb_gettid(). Maybe we will find some workaround for it in the future.
> Now it's important that it works.
> BTW it looks that your system is not configured to use 2CPUs and everything
> is executed using only one. Do you used SMP OS2 release? If not then
> scalar factor will always be close to 1.
> 
> best regards,
> Przemek
> _______________________________________________
> Harbour mailing list (attachment size limit: 40KB)
> Harbour@harbour-project.org
> http://lists.harbour-project.org/mailman/listinfo/harbour
> 

-- 
 __________
|  |  | |__| Maurilio Longo
|_|_|_|____| farmaconsult s.r.l.


_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to