Page 1 of 4 1234>
Topic Options
#128859 - 2004-11-03 01:11 AM Kix32.exe is too large, I use an old version...
ciper Offline
Fresh Scripter

Registered: 2004-11-03
Posts: 36
Not sure I understand the continual increase in size of the KIX executable over time. Are the developers getting lazy on optimization?

The older version Ive been using is 61k, one quarter the size of the current version.

On top of that, using an executable compression application like UPX ( http://upx.sourceforge.net/ GNU GPL) will give me a file size of under 100kb on the current version and 21k on the older version I have!!!

Before you start to ask, when you have well over 1000 machines at a single site (with sites all over the world) the difference between the two versions I mention is about 200 megabytes of extra traffic the domain controllers have to deal with every morning.

So what gives?


Edited by ciper (2004-11-03 01:16 AM)

Top
#128860 - 2004-11-03 01:21 AM Re: Kix32.exe is too large, I use an old version.
Shawn Administrator Offline
Administrator
*****

Registered: 1999-08-13
Posts: 8611
You think size matters eh ? ;0)

Just did a quick enum of Kixtart over the years ...

2.33 = 80kb
3.63 = 163kb
4.00 = 196kb
4.22 = 241kb

So what version were you running ? Given the number of features added over the years, and the big swing with COM starting with 4.00, don't think a 241kb scripting language is large at all ... 241kb is tiny (relatively speaking imho).

Top
#128861 - 2004-11-03 01:35 AM Re: Kix32.exe is too large, I use an old version.
ciper Offline
Fresh Scripter

Registered: 2004-11-03
Posts: 36
How I see it is you have a base set of code that takes most of the file size then additional code for those added features. If the current version is 4 times the size of version 3.21 shouldnt have at least 5-6 times the features?

When I do a kix32 /? on the version Im using it reports:
>>> KiXtart 95 3.21
Windows NT 3.x / Windows 95 logon script processor and/or registry editor.
Usage : KIX32 [script1] [...] [$var=123]

File size is 61kb

You may think 241 is relatively small when thinking of transfering this file once. Try transfering it thousands of times along with the other files used during your login (registry settings, policy files, scripts themselves) and the burden on the servers becomes noticable.


Edited by ciper (2004-11-03 02:10 AM)

Top
#128862 - 2004-11-03 01:41 AM Re: Kix32.exe is too large, I use an old version.
Shawn Administrator Offline
Administrator
*****

Registered: 1999-08-13
Posts: 8611
We usually do a one-time copy of kix32.exe to the workstation first, thats gets it on the workstation then from there on in, its faster than stink ... plus dont forget, two other features were added that aren't so "in-your-face" noticable, most notibly:

Group Caching
Tokenized Scripts

Both these new features makes Kixtart the logon scripting language of choice ... if your concerned with size versus features versus performance, suggest you stick with BAT files for your scripts ... you know the old saying as well as I do, no such thing as a free lunch.

Top
#128863 - 2004-11-03 01:51 AM Re: Kix32.exe is too large, I use an old version.
Shawn Administrator Offline
Administrator
*****

Registered: 1999-08-13
Posts: 8611
I'll tell what I think Kixtart does have ... lots of baggage ... baggage from supporting the Win9x systems. Because there was so much stuff originally embedded into Kixtart to support working 9x in the NT domain ... tons of baggage me thinks.

But Ruud always provided backward compatibility, and we all know that comes with a price too.

Top
#128864 - 2004-11-03 01:56 AM Re: Kix32.exe is too large, I use an old version.
Les Offline
KiX Master
*****

Registered: 2001-06-11
Posts: 12734
Loc: fortfrances.on.ca
Quote:

I use an old version



Good for you. So then why are you complaining? You want the features of the latest version but don't want to pay for it?

You are obsessing over size. 200k is peanuts related to what else goes up and down the pipe. Like Shawn said, copy it to the client if you are so concerned.

I have single spreadsheets that add up to more that what your DC transfers in an entire day and I am not obsessing.
_________________________
Give a man a fish and he will be back for more. Slap him with a fish and he will go away forever.

Top
#128865 - 2004-11-03 02:12 AM Re: Kix32.exe is too large, I use an old version.
ciper Offline
Fresh Scripter

Registered: 2004-11-03
Posts: 36
Copying to the client is possible, I could add something like

%systemroot%\system32\FC.exe %temp%\KIX32.EXE %0\..\KIX32.EXE /LB1 > NUL
if %errorlevel% == 1 GOTO KIXDIF ;different than DC
if %errorlevel% == 2 GOTO KIXDIF ;not found
echo kix is the same >> "%temp%\loginsteps.txt"
goto KIXSAME
:KIXDIF
echo kix is dif >> "%temp%\loginsteps.txt"
copy /Y %0\..\KIX32.EXE %temp% > NUL
:KIXSAME


That way I have version control in case it changes...


Edited by ciper (2004-11-03 02:29 AM)

Top
#128866 - 2004-11-03 02:26 AM Re: Kix32.exe is too large, I use an old version.
ciper Offline
Fresh Scripter

Registered: 2004-11-03
Posts: 36
Quote:

Quote:

I use an old version



Good for you. So then why are you complaining? You want the features of the latest version but don't want to pay for it?

You are obsessing over size. 200k is peanuts related to what else goes up and down the pipe. Like Shawn said, copy it to the client if you are so concerned.

I have single spreadsheets that add up to more that what your DC transfers in an entire day and I am not obsessing.




Sounds like both of you live by the idea that if you have extra bandwith you might as well use it.
Why no interest in optimization? If I can grab a executable compression application found on google in 5 seconds and reduce the file size by 60% that leads me to believe more could be done in development.

All of this adds up to the time the user spends waiting for his machine. In the end 5 seconds here and there may not sound like much but if you can reduce the wait time 15 seconds overall (trying to optimize in any way you can) and multiply that by the number of employees, the number of work days and the average salary you just saved a good chunk of change!

Oh and to give you an idea quickly, I do have extremely fat pipes to the machines on the network. Ill share with you because Im proud of it

Users are connected to a group of Cisco 4507 in every area with dual sup and 5 ws-x4548-gb cards. Thats 10/100/1000 to the desktop (and many machines have gigabit nics). Those are dual fiber attached to two 6513. The servers are dual connected to ws-6748-ge in the 6513s which have sup 720s, dual copper load balanced GB connections to most of the servers.

I understand that additional features need an increase in file size. What I cant see is such a large increase that relate to a few useful features and a few more less often used features.

I propose not only getting the main kix32 executable file size smaller in some way but also the possibility of a "light" version geared towards the most common used commands!


Edited by ciper (2004-11-03 02:40 AM)

Top
#128867 - 2004-11-03 02:44 AM Re: Kix32.exe is too large, I use an old version.
ciper Offline
Fresh Scripter

Registered: 2004-11-03
Posts: 36
UPX output

C:\temp>upx --best -v kix32.exe
Ultimate Packer for eXecutables
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
UPX 1.25d Markus F.X.J. Oberhumer & Laszlo Molnar Jun 29th 2004

File size ---------- Ratio---- Format --- Name
-------------------- ------ ----------- -----------
241664 -> 99328 41.10% win32/pe kix32.exe

Packed 1 file.

Top
#128868 - 2004-11-03 03:29 AM Re: Kix32.exe is too large, I use an old version.
Les Offline
KiX Master
*****

Registered: 2001-06-11
Posts: 12734
Loc: fortfrances.on.ca
Quote:

I propose not only getting the main kix32 executable file size smaller in some way but also the possibility of a "light" version geared towards the most common used commands!



I don't agree with a stripped down version that has only a subset of commands and functions. I do agree though that the EXE could be made smaller and posted the following suggestion a while back.
MakeEXE for KiX 4.5

BTW, your batch file with FC.EXE would not lessen the network traffic since the bytes needed for a file compare is the same as if you just ran it from the DC. The way some people manage versioning is to calculate and store the CRC of the seed copy and then check the CRC on just the local copy.
_________________________
Give a man a fish and he will be back for more. Slap him with a fish and he will go away forever.

Top
#128869 - 2004-11-03 03:40 AM Re: Kix32.exe is too large, I use an old version.
Shawn Administrator Offline
Administrator
*****

Registered: 1999-08-13
Posts: 8611
Maybe I've just been spoiled the past few years, haven't used dialup access since my old VAX days, but over one of these "slow" links, what kinda saving are we talking about here ?

A file that is 100kb versus one that is 250kb ... what would be the savings in terms of speed here ? 1 second ? 10 seconds ? 60 seconds ?

-Shawn

Top
#128870 - 2004-11-03 03:56 AM Re: Kix32.exe is too large, I use an old version.
ciper Offline
Fresh Scripter

Registered: 2004-11-03
Posts: 36
"BTW, your batch file with FC.EXE would not lessen the network traffic since the bytes needed for a file compare is the same as if you just ran it from the DC. The way some people manage versioning is to calculate and store the CRC of the seed copy and then check the CRC on just the local copy. "

Haha, I love it. How can you easily compare the CRC of both files with tools included in a standard build of windows?

I like the Makexe idea, the executable could trim uneeded code from the kix32 exeutable and turn out to be smaller than the original kix32.exe !


Top
#128871 - 2004-11-03 04:00 AM Re: Kix32.exe is too large, I use an old version.
ciper Offline
Fresh Scripter

Registered: 2004-11-03
Posts: 36
The slow links I mention arent slow in terms of speed its latency, point to point dedicated connections and VPN over the internet both get slow. For example a short run like boulder colorado to Toronto Ontario with a T3 is 95ms with the best provider. The smaller offices using 384k dsl with VPN are 160ms to 200ms usually
Top
#128872 - 2004-11-03 04:05 AM Re: Kix32.exe is too large, I use an old version.
ciper Offline
Fresh Scripter

Registered: 2004-11-03
Posts: 36
Could I read the date of the two kix32.exe files and compare them? Then if I ever want a new version copied to the machine I just set the date into the future.
Top
#128873 - 2004-11-03 04:10 AM Re: Kix32.exe is too large, I use an old version...
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11623
Loc: CA
Well, just to maybe shed a ray of light on the subject as I see it.

On the UPX website forum for "Our Happy Customers" I see 59 posts.

According to Microsoft claims, they tested over 2 Million applications for compatiblilty with Windows XP before RTM.

When writing an application using Microsoft Assembler and Visual C v6.0 one has to make many choices for compiling for the best size. This process often includes hundreds of various resources that Microsoft has worked on compatibiltiy testing already to a degree further then any other vendor in this area.

I don't think anyone is disagreeing that it is not possible, but come on, one has to be realistic as well. This is not the only compressor out there and were not talking a 5MB+ DLL like many applications have.

The author writes KiXtart on his own time and has to debug on his own time to a degree he feels comfortable with making a beta version available. By now throwing in the mix a compression routine that has issues as well. (I see 132 posts for "Troubles with decompression of packed exes")

Your scripts can also be setup so that the user doesn't even see or know it's running, so what are we really talking about here? An IDEOLOGY which may or may not be accepted by everyone.

You can easily compress your version though as you already know and run along happy. I can't speak for Ruud, but if I were in his shoes I don't think I'd care to spend the extra time and effort involved to achieve such a small gain at the expense of potential unknown bugs or other issues.

As for the newer features in the lastest KiXtart, there are hundreds of minor fixes, updates, new features and yes, as Shawn has said, a LOT of current size is due to still maintaining Windows 9x support.

If you know of a smaller/better/as-complete scripting language please let us know.
Have you checked the size of Perl/Python/VBscript ? They are MUCH larger then KiXtart and require external libraries to support anything close to what KiXtart supports in a single EXE.

Top
#128874 - 2004-11-03 04:14 AM Re: Kix32.exe is too large, I use an old version.
Les Offline
KiX Master
*****

Registered: 2001-06-11
Posts: 12734
Loc: fortfrances.on.ca
Quote:

Haha, I love it. How can you easily compare the CRC of both files with tools included in a standard build of windows?



Hmmm... KiX is not included standard with WIndows but you use it. Neither is UPX.
_________________________
Give a man a fish and he will be back for more. Slap him with a fish and he will go away forever.

Top
#128875 - 2004-11-03 04:24 AM Re: Kix32.exe is too large, I use an old version.
Shawn Administrator Offline
Administrator
*****

Registered: 1999-08-13
Posts: 8611
Really wierd ... I download upx and successfully compressed verion 4.22 of kix32.exe. strange thing is I get some kind of weird PF error (?) when compressing 4.50 alpha kix32.exe ... dont know whats up with that. using the same commandline switch etc !?
Top
#128876 - 2004-11-03 04:29 AM Re: Kix32.exe is too large, I use an old version.
Howard Bullock Offline
KiX Supporter
*****

Registered: 2000-09-15
Posts: 5809
Loc: Harrisburg, PA USA
I store Kix32.exe, crc32.exe, and 70+KB of script code on the client that is executed globally by 35,000 clients daily. I much prefer the added functionality in Kix32 and with it staged locally, I have no issues that site.

If you want to see my batch file for launching this it is here: LOGON.BAT (the overkill version)

if Kix32.exe or the scripts are altered or otherwise corrupted they will be replaced because they will fail a CRC32 check. If I add updated code on the DC again the locaaly cached files fail the CRC and will be updated.

You must not be doing very much with your code if you are elated with 3.21.
_________________________
Home page: http://www.kixhelp.com/hb/

Top
#128877 - 2004-11-03 09:18 PM Re: Kix32.exe is too large, I use an old version.
ciper Offline
Fresh Scripter

Registered: 2004-11-03
Posts: 36
Thats true, I try to keep the number of support files to a minimum, so far the script uses/copies
cusrmgr.exe 78k (great for adding domain admins back into the local admin group using the users security)
pskill.exe 92k (able to stop processes that even taskmanager cant)
ntconfig.pol 256k (for control over xp sp2 firewall policy)
poledit and associated files 212k (only way to locally change firewall policy when controlled by policy)
urtlogon.exe 60k (changes users to vlan based on business unit)
3 reg files 7k (various settings to the desktop)
2 kix script 6k (service pack 2 deployment to users of certain business units, symantec antivirus install and mcafee uninstall)
5 batch files 11k (too much to explain)
and a batch file compiled/encrypted to exe to hide contents 58k (sets local admin password, checks for antivirus install etc..)
and some other random files like office template/font defaults
Overall about 800k

You didnt answer the question though! Ill try to look too and post what I find.

Quote:

Quote:

Haha, I love it. How can you easily compare the CRC of both files with tools included in a standard build of windows?



Hmmm... KiX is not included standard with WIndows but you use it. Neither is UPX.



Top
#128878 - 2004-11-03 09:22 PM Re: Kix32.exe is too large, I use an old version.
Shawn Administrator Offline
Administrator
*****

Registered: 1999-08-13
Posts: 8611
ciper,

Have any feeling why upx would be able to compress v4.22 of kix32.exe, but using the exact same commandline, be unable to compress v4.50 of kix32.exe ? Have you seen behavior like this before ?

-Shawn

Top
Page 1 of 4 1234>


Moderator:  Lonkero, ShaneEP, Jochen, Radimus, Glenn Barnas, Allen, Ruud van Velsen, Mart 
Hop to:
Shout Box

Who's Online
2 registered (morganw, mole) and 414 anonymous users online.
Newest Members
gespanntleuchten, DaveatAdvanced, Paulo_Alves, UsTaaa, xxJJxx
17864 Registered Users

Generated in 0.073 seconds in which 0.024 seconds were spent on a total of 14 queries. Zlib compression enabled.

Search the board with:
superb Board Search
or try with google:
Google
Web kixtart.org