1. Edita on 4.0a3

Has anyone tried running edita on 4.0a3? After a few straightforward edits (renaming entry/label/switch/retry vars, the only nonlocal one being integer retry in eamncode.e referenced precisely once in eamacro.ew), it seemed to run but immediately hang. However on closer inspection, it was taking 5 minutes to open/unpack win32lib.ew, and that's compared to <1 second on 2.4, some 300 times faster!

new topic     » topic index » view message » categorize

2. Re: Edita on 4.0a3

jemima said...

However on closer inspection, it was taking 5 minutes to open/unpack win32lib.ew, and that's compared to <1 second on 2.4, some 300 times faster!

Yes, 3.1 win32lib apps are not terribly 4.0 friendly. The basic issue is that there are lots of files that do not include win32lib, but that use it and rely on another file (probably the main file) to include it.

Matt

new topic     » goto parent     » topic index » view message » categorize

3. Re: Edita on 4.0a3

mattlewis said...
jemima said...

However on closer inspection, it was taking 5 minutes to open/unpack win32lib.ew, and that's compared to <1 second on 2.4, some 300 times faster!

Yes, 3.1 win32lib apps are not terribly 4.0 friendly. The basic issue is that there are lots of files that do not include win32lib, but that use it and rely on another file (probably the main file) to include it.

Matt

Actually, my tests show it 13,800 times slower (0.03 vs 414 seconds), probably an exponential slowdown due to messed up refcounts. It has nothing to do with the new and bizarre include system, try this:

atom t 
    t = time() 
 
sequence text 
integer lineno, count 
 
function Clone(sequence intxt) 
integer lt 
    lt = length(intxt) 
    return intxt[1..lt] 
end function 
 
    text = {repeat("1234",60000)} 
    count = 0 
    lineno = 0 
    while 1 do 
	if lineno>=length(text[1]) then exit end if 
	lineno += 1 
	text[1][lineno] = Clone(text[1][lineno]) 
	count += 1 
	if count>2000 then 
	    printf(1,"unpacking %d\n",{lineno}) 
	    count = 0 
	end if 
    end while 
 
    printf(1,"done, t=%3.2f\n",time()-t) 


Forked into: Sequence test

new topic     » goto parent     » topic index » view message » categorize

4. Re: Edita on 4.0a3

Hi

Thats reaaly quite a large difference - I ran it on eu 3.1.1 on a virtual xp, and even then it blinked so fast I had to run it several times before I realised it was actually working, but eu 4 on xp 390 seconds or so.

Why?

Chris

new topic     » goto parent     » topic index » view message » categorize

5. Re: Edita on 4.0a3

ChrisB said...

Hi

Thats reaaly quite a large difference - I ran it on eu 3.1.1 on a virtual xp, and even then it blinked so fast I had to run it several times before I realised it was actually working, but eu 4 on xp 390 seconds or so.

Why?

It is slower currently, but on my XP SP3 system, with Euphoria qddebugging code turned on, I'm getting around 35 seconds!.

There is something extra happening now with dereferencing temporary values and possibly copying RAM instead of just referencing it. I'll look into it in the next day or two (quite busy ATM with other non-Euphoria stuff).

new topic     » goto parent     » topic index » view message » categorize

6. Re: Edita on 4.0a3

petelomax said...

Actually, my tests show it 13,800 times slower (0.03 vs 414 seconds), probably an exponential slowdown due to messed up refcounts.

Pete, thanks for finding this!

Matt

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu