bug-apl
[Top][All Lists]
Advanced

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

Re: [Bug-apl] Performance improvement result


From: Elias Mårtenson
Subject: Re: [Bug-apl] Performance improvement result
Date: Thu, 1 May 2014 21:29:30 +0800

I ran the test cases using a non-patched version and a patched one. The non-patched version has 26 errors and the one that has my performance patch has 28 errors. Thus, 2 errors were introduced by my fix.

I have been diffing the output of the two test logs and I just can't seem to figure out what the difference is. Jürgen, would you be able to take a look at this?

default.log contains the output from the tests using the plain version from SVN. patch.log contains the output from my patched version.

Regards,
Elias


On 30 April 2014 16:10, Elias Mårtenson <address@hidden> wrote:
The following patch improves the performace of reading a 10k line file using io∆readfile from several minutes down to about half a second.

The key to this was to avoid cloning the result when reading the value from a variable. This caused functions with lots of variable dereferencing to become incredibly slow. This should be safe as the values are cloned before modification anyway.

The same patch also marks the result of ⎕UCS as temp before returning the value since it's not changed further after returning the value.

Finally, Value::clone() is changed such that it doesn't actually perform any copying if the value is temp, and instead only marks the value non-temp. This is the right thing to do since any caller of clone() presumably wants to have exclusive ownership of the value.

Regards,
Elias


Attachment: default.log
Description: Text Data

Attachment: patch.log
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]