Inform 7-6L Windows IDE Slow

I made three rooms. It takes 6 seconds for the ni compiler to run and then another 6 seconds for the Inform 6 compiler. 12 seconds to compile a 3 line game.

I’m running an Intel I3 on Win 8.1 with 4Gb RAM and an SSD.

In 6G the same code compiles in about 4.5 seconds.

Compiling to Glulx without Blorb in both caes.

Should I report?

David C.
textfyre.com

Odd, because on my (considerably older) machine my template compiles in about 5 seconds or so.

I also think that the compile-run cycle seems to be a lot slower than with previous versions.
I appreciate that more might be happening, but can anyone explain what is causing the pauses?

I used to dabble with inform while on my lunch break - but I can’t install inform on my office machine.
I tried a quick test using the new Portable Inform build on a USB stick and it takes over 3 minutes to compile and run “There is a room.” I’ve run from a stick before, it was slow, but usuable.

Inform6.exe is only being run once, but it seems to be waiting for the file system over and over again (CPU %age is really low). Not sure what’s going on.
EDITED: I originally thought Inform6.exe was running more than once - it was simply dropping off the task manager as it had 0% CPU for a few updates.

For me, if this is normal speed and expected behaviour, that pretty much kills using a USB portable version for small tests and running the examples from the inform manual and recipe book.

It shouldn’t be doing that.

Sorry Inform6 is only being run once. I just updated my original post.
The CPU usage drops to 0% and it fell of the bottom of the task manager list!

Inform6.exe blocking overmuch may be my fault; the new debug file format requires a fair bit more I/O than the old one. I can look into that.

After I compile the program seems to hang for five to ten seconds after showing the “everything seems to be good” message and before showing the story. It’s not too long, but it might indicate a larger problem.

That message precedes the I6 compile I think.

Can’t see why inform6 would block writing the debug file. Although it’s true it’s gotten very large.

Is your project file on the USB stick too?

I’m running on a Win7 desktop computer with a decent processor. Both Inform and the story file are on my hard drive.

I’m wondering if this is happening because I have VS 2012 and VS 2013 installed. I can’t imagine why some people would see 3s and I’m getting 12s.

I’ve reproduced the problem and, as ‘eu’ suspected, it seems that the debug info is the culprit.
I snagged a copy of auto.inf after ni.exe was finished.
I ran inform6 from the command line:
inform6.exe -G auto.inf takes between 7 and 12 seconds
inform6.exe -G -k auto.inf takes about 170 seconds!!

Tested on a USB stick to show how acute the problem is.

Writing the gameinfo.dbg file (10MB altogether) seems to be the problem.

EDIT: Tested with “There is a room.”

This is the line I see:

C:\Program Files (x86)\Inform 7 6L02\Compilers\inform6
-kwSDG +include_path=…\Source,.\ auto.inf output.ulx

I am getting the gameinfo.dbg file, but is that necessary for the I7 IDE?

Okay, so the -k flag needs work. (Question, though: do you also see a notable time difference flipping that flag when not on a USB stick? The one oddity is that this doesn’t explain why some people see a slowdown and others don’t. Or why only Windows users are having the problem.)

A proposal for consideration: the vast majority of gameinfo.dbg is sequence point enumeration, which is obviously very compressible. We could embed a tighter, non-XML format for SPs in the elements.

Further, if the IDEs could add a checkbox for the flag, defaulting to off, that would help too. I can try to write up some patches, although my time is short, so it might be a while. (Also, where’s Toby keeping the new Mac IDE code?)

And, if I can get to a Windows machine, I’ll try building an I6 that ignores -k, as a stopgap for people seeing problems.

If you stick these lines into your source code, it will suppress the debug file:

Include (-!% -~k
-) before "ICL Commands" in "Output.i6t".

(The spacing has to be exactly like that.)

For a one-room game, this shortens my total compile time (I7+I6) from about 2.4 seconds to 1.8 seconds. (2.7 GHz iMac.) I invented this for Hadean Lands, of course, where it’s about 8 seconds vs 7 seconds – still small, but worth the fix for me.

I’m fine with that.

Useful! But why does this work? Doesn’t the ! at the beginning comment out the line?

On my lowly Samsung Netbook atom 1.6 GHz, 2GB RAM, running Windows 7, normal hard disk. I did the following:

I created a dummy test project with 50 rooms and and 50 men:
r0 is a room. There is a man called m0.
r1 is a room. There is a man called m1.
etc.

inform6.exe -kwSDG auto.inf takes around 12-14 seconds
inform6.exe -wSDG auto.inf takes just 1-2 seconds!!

So it’s actually a pretty similar factor the USB stick test.

It’s like a shebang in Unix scripting: a comment in the I6 language, but a meaningful instruction in ICL.

I learned something new, by the way. I thought that this wouldn’t work because you can’t set the -k flag in ICL. But apparently you can clear it.

Okay, that’s one vote; I will start drafting.