mIRC Home    About    Download    Register    News    Help

Topic Options
#264469 - 03/12/18 09:26 PM Increased overhead time
maroon Offline
Hoopy frood

Registered: 12/01/04
Posts: 966
In case this is something that's reasonably easy to locate and eliminate. It appears the scripting overhead has taken a large jump between v7.52 and v7.53, as demonstrated by running this bare-bones while() loop on both versions:

Code:
//!var %i 99999 , %t $ticks | !while (%i) { !dec %i } | !echo -a $calc($ticks - %t) ms



Repeating this consistently shows me the time increasing by 15%, and I had someone else seeing a difference as high as 30% jump. I didn't see a change in either version's time after giving the old version the same scripts and turning /remote off.

It's possible this is related to the issue I reported in the hashtable thread where I was seeing a 15% slowdown in beta 1438 comparted to 7.52-no-beta.

https://forums.mirc.com/ubbthreads.php/topics/263989/Re:_/hadd_does_not_save_items_#Post263989

That 1438 beta was prior to the first changes related to FNV1a, and was having most of the slowdown I was seeing when comparing the no-beta vs the 1897 beta which had FNV1a.

Top
#264472 - 03/12/18 10:49 PM Re: Increased overhead time [Re: maroon]
Khaled Offline


Planetary brain

Registered: 04/12/02
Posts: 4295
Loc: London, UK
This is related to a combination of items 28 and 44, both of which required extra work relating to allocation and freeing of memory. Neither of these can be optimized further, so this is indeed a permanent change.

Top
#264487 - 05/12/18 11:52 AM Re: Increased overhead time [Re: maroon]
Khaled Offline


Planetary brain

Registered: 04/12/02
Posts: 4295
Loc: London, UK
I was able to track down why this was affecting if/while loops. The script parser was zeroing the entire string size of the comparison parameters at a specific point during repeated loops, which was not necessary. This was more noticable due to the increased string size in v7.53. I have changed it to just zero the first byte, so looping should now end up being a little bit faster than previous versions.

Top