| View previous topic :: View next topic |
| Author |
Message |
jules Professional Member


Joined: 14 Sep 2001 Posts: 1043 Location: Cumbria, UK
|
Posted: Wed Oct 13, 2004 3:58 pm Post subject: How important is runtime size? |
|
|
Open question. How important to you is the size of the VDS runtime (and of any extension DLLs that you use)?
To me, it's quite important in a practical sense because it reduces the size of files people download from my site, and therefore reduces the bandwidth used.
From an aesthetic point of view, I like programs that are small and efficient, and dislike bloatware. We developed the VDS 5 runtime using Delphi 2 because it created a much smaller DLL than Delphi 6. It bugs me that I know there is a lot of stuff in the Delphi 6 VCL that a VDS program will never use. If I was starting to develop VDS now, I would use the Key Objects Library (KOL). I just used it to create a simple GUI app with Delphi 6 in less than 20K! But it would be a lot of work to re-implement VDS using it now (though not as much as re-implementing it using API, of course!)
So I'm interested to know what people would think if VDS 6 had a runtime that was twice the size, or 1MB, or even more. Bearing in mind that it will nearly double in size just recompiling it with Delphi 6, before any new functionality is added. (And for those who don't know, the runtime is already compressed with UPX so that isn't an option for making it smaller.) _________________ The Tech Pro
www.tech-pro.net |
|
| Back to top |
|
 |
Skit3000 Admin Team

Joined: 11 May 2002 Posts: 2166 Location: The Netherlands
|
Posted: Wed Oct 13, 2004 4:06 pm Post subject: |
|
|
I think most things which can be downloaded on the internet, are growing bigger and bigger recent years. Just look at the size of an average webpage: 40 kb or more. Six or seven years back, it would take 20 seconds to load such a page, now it takes less than a second on most PCs. That's why I think that if the runtime DLL would grow to 1 MB, nobody really worries about it, since you only have to download it once...
Just another little question, IF VDS 6 will come out with a "big" runtime DLL, maybe there should be an option with the VDS EXE files to download the runtime DLL from a central webserver, if it isn't available on the computer already...  _________________ [ Add autocomplete functionality to your VDS IDE windows! ]
Voor Nederlandse beginners met VDS: bekijk ook eens deze tutorial! |
|
| Back to top |
|
 |
PGWARE Web Host

Joined: 29 Dec 2001 Posts: 1565
|
Posted: Wed Oct 13, 2004 4:50 pm Post subject: |
|
|
| Quote: | | be an option with the VDS EXE files to download the runtime DLL from a central webserver |
That might be a good option but there would be tons of bandwidth that Commercial Research would have to devote for that option.
Regarding runtime sizes it would not be such a problem if the size increased since most people using the internet are capable of downloading large files. Typically if they are downloading off the internet they more than likely also have upgraded Internet Explorer and other software which are in the 10-20 mb range. |
|
| Back to top |
|
 |
SnarlingSheep Professional Member


Joined: 13 Mar 2001 Posts: 759 Location: Michigan
|
Posted: Thu Oct 14, 2004 12:13 am Post subject: |
|
|
Even on cable I wouldn't like a 1 MB runtime..
The problem is, there's never just one situation when you have internet clients. They could only want one of your files, meaning a built in runtime would be good, or they could want a few where an external, one-time-download, runtime would be better.
It should be an option no matter what size the runtime is, but the smaller the better of course. There are alot of people still on dialup. _________________ -Sheep
My pockets hurt... |
|
| Back to top |
|
 |
jules Professional Member


Joined: 14 Sep 2001 Posts: 1043 Location: Cumbria, UK
|
Posted: Thu Oct 14, 2004 7:50 am Post subject: |
|
|
| Skit3000 wrote: | Just another little question, IF VDS 6 will come out with a "big" runtime DLL, maybe there should be an option with the VDS EXE files to download the runtime DLL from a central webserver, if it isn't available on the computer already...  |
That's a good idea, but it's an issue that the developer can solve for himself. Actually I tried to do that with my Tech-Pro Utilities, which are all available as separate downloads, but only the main one contains the runtime files. If someone downloads one of the other utilities, the installer runs a small program that checks for the existence of vdsrun50.dll, and if it isn't there it tries to download the main module from the web. It's not a very sophisticated system. Unfortunately, only the very expensive installer packages have a proper "install from the web" capability. _________________ The Tech Pro
www.tech-pro.net |
|
| Back to top |
|
 |
jules Professional Member


Joined: 14 Sep 2001 Posts: 1043 Location: Cumbria, UK
|
Posted: Thu Oct 14, 2004 8:01 am Post subject: |
|
|
| SnarlingSheep wrote: | Even on cable I wouldn't like a 1 MB runtime..
The problem is, there's never just one situation when you have internet clients. They could only want one of your files, meaning a built in runtime would be good, or they could want a few where an external, one-time-download, runtime would be better.
It should be an option no matter what size the runtime is, but the smaller the better of course. There are alot of people still on dialup. |
And there are people who could get your software on a magazine CD, say, who might not be happy at having to go on the Internet to get the main part. Really, the only way to ensure a trouble-free installation for everyone is to include all the files that are required.
I know that some people are writing software now that requires the .NET runtime, which is about 20MB, and I'm sure that a lot of people are put off trying the software as a result.
I'm coming round to the point of view that a 1MB runtime isn't a big deal any more. Any worthwhile application written in Delphi now will be at least that big on its own. _________________ The Tech Pro
www.tech-pro.net |
|
| Back to top |
|
 |
marty Professional Member


Joined: 10 May 2001 Posts: 789
|
Posted: Thu Oct 14, 2004 12:05 pm Post subject: |
|
|
Bigger runtime DLL would not be a problem I think. I have been doing small apps with VDS for at leats 3 years now and I had to add other extensions anyway. Nobody ever complained about the size of my setup packages..( sometime up to 5 megs)
Also I am using another authoring tool and after compilation without any external DLL is about 650K (Which includes a Sound engine, most of VDS features, Flash support, VisualFX, Antilias fonts, Browser object, Alpha button support and of most of VDS functions (math, system,string manipulation,etc..) and more!) the runtime is packaged with the EXE, (which I would like to see in a future version of VDS)
Opting for Delphi 6 is a great idea. That would finally add more features to the basic VDS engine I am sure... Sometimes you have to sacrifice size for cool new features... Delphi 2 is limited but good.. I use Delphi 6 and I agree with you Jules that it would be a great idea to switch. Cant stay with Delphi 2 for ever right? Need to evolve one day..
My 2 cents..  |
|
| Back to top |
|
 |
CodeScript Moderator Team

Joined: 08 Jun 2003 Posts: 1060 Location: India
|
Posted: Thu Oct 14, 2004 12:19 pm Post subject: |
|
|
Bigger runtimes may not be liked by a sizeable proportion of ppl.
One idea would be to make a selective compilation possible - Divide the required modules into say 5 or 6 and create a runtime on the fly depending on the features used by the app in question. The IDE Will put this runtime into the project folder.
If the app doesn't find this then it would secondarily look for the single version fat runtime.
This way non-newbies can create apps which are small in size. _________________ Regards
- CodeScript
Give your application a professional look with the VDSGUI Extension |
|
| Back to top |
|
 |
jules Professional Member


Joined: 14 Sep 2001 Posts: 1043 Location: Cumbria, UK
|
Posted: Thu Oct 14, 2004 12:49 pm Post subject: |
|
|
| marty wrote: | | ... the runtime is packaged with the EXE, (which I would like to see in a future version of VDS) |
I know a few people would really like this. The reason it isn't an option is that you would actually need two runtimes, and it would involve a lot of extra testing, because some things have to be done different in a DLL than in an EXE. I actually have Delphi code that makes a self contained EXE (for testing difficult bugs, because you can't debug a DLL in Delphi 2) and some things don't work right, like windows minimize to a little block in the bottom corner of the desktop instead of the task bar, and stuff like that.
Given that Alloy is available for those who want an EXE that will just run, which uses the existing runtime, the extra work involved in creating this self contained XE option hasn't been considered very worthwhile. Most apps use an installer, in which case whether the runtime is integrated or separate is completely transparent to the user.
| marty wrote: | Opting for Delphi 6 is a great idea. That would finally add more features to the basic VDS engine I am sure... Sometimes you have to sacrifice size for cool new features... Delphi 2 is limited but good.. I use Delphi 6 and I agree with you Jules that it would be a great idea to switch. Cant stay with Delphi 2 for ever right? Need to evolve one day..
My 2 cents..  |
Delphi 6 wouldn't in itself add much in the way of basic features. One advantage will be to get away from the primitive Delphi 2 memory manager, which among other things is responsible for the problems of lists being slow to load and having limited capacity. The other benefit is that it allows new features to be added easily, because the easiest way to do that is to use existing Delphi components, and most modern components just don't work with Delphi 2. _________________ The Tech Pro
www.tech-pro.net |
|
| Back to top |
|
 |
jules Professional Member


Joined: 14 Sep 2001 Posts: 1043 Location: Cumbria, UK
|
Posted: Thu Oct 14, 2004 1:00 pm Post subject: |
|
|
| CodeScript wrote: | Bigger runtimes may not be liked by a sizeable proportion of ppl.
One idea would be to make a selective compilation possible - Divide the required modules into say 5 or 6 and create a runtime on the fly depending on the features used by the app in question. The IDE Will put this runtime into the project folder.
If the app doesn't find this then it would secondarily look for the single version fat runtime.
This way non-newbies can create apps which are small in size. |
I've been thinking about that, especially since I'm interested in using VDS to create console mode non-GUI utilities. I think it might be too difficult to put all the GUI stuff into a separate DLL, and many people might not like having to install two DLLs for every GUI VDS app. But it might be possible to build two versions of the runtime, one of which doesn't contain any GUI stuff. However, you'd only really gain anything if you could completely avoid dependence on the Forms unit, and even apparently GUI-less apps benefit from having invisible windows, such as for TCP/IP stuff. So on the whole, I would say that this is probably even less likely to happen than an integrated runtime option. _________________ The Tech Pro
www.tech-pro.net |
|
| Back to top |
|
 |
Skit3000 Admin Team

Joined: 11 May 2002 Posts: 2166 Location: The Netherlands
|
Posted: Thu Oct 14, 2004 3:00 pm Post subject: Re: How important is runtime size? |
|
|
| jules wrote: | | I just used it to create a simple GUI app with Delphi 6 in less than 20K! But it would be a lot of work to re-implement VDS using it now (though not as much as re-implementing it using API, of course!) |
Can I ask how many lines the VDS runtime DLL is right now, so I can get an idea how much work it will be?  _________________ [ Add autocomplete functionality to your VDS IDE windows! ]
Voor Nederlandse beginners met VDS: bekijk ook eens deze tutorial! |
|
| Back to top |
|
 |
jules Professional Member


Joined: 14 Sep 2001 Posts: 1043 Location: Cumbria, UK
|
Posted: Thu Oct 14, 2004 3:10 pm Post subject: |
|
|
I don't know, since it comprises many different source files, but it is a lot of lines, even if you don't include the VCL source files (which of course you should ) _________________ The Tech Pro
www.tech-pro.net |
|
| Back to top |
|
 |
PGWARE Web Host

Joined: 29 Dec 2001 Posts: 1565
|
Posted: Thu Oct 14, 2004 9:34 pm Post subject: |
|
|
For a 'self-contained' runtime couldn't you do this Julian:
Take the stub exe; include the runtimedll as a binary resource and have it extract out the dll with a TFileStream. It would do this at the very beginning of execution before running the SCRIPT portion; if the runtime is already within the system/current dir then do not extract.
I don't imagine it taking that much work but it may make the exe bigger since you would have to use TFileStream in your exe stub project.
You could even add it as an option for 'integrated' or not by allowing the compiler to decide to include the runtime as a resource into the stub or not. |
|
| Back to top |
|
 |
SnarlingSheep Professional Member


Joined: 13 Mar 2001 Posts: 759 Location: Michigan
|
Posted: Thu Oct 14, 2004 9:38 pm Post subject: |
|
|
VDS is a $99 language and the developer is worried about the extra work it would take to implement a feature that most of the customers want..
Not to mention the extra work it'd take to fix bugs already in the language.
Just one of the many reasons VDS will be crushed by it's competitors. _________________ -Sheep
My pockets hurt... |
|
| Back to top |
|
 |
FreezingFire Admin Team

Joined: 23 Jun 2002 Posts: 3508
|
Posted: Fri Oct 15, 2004 12:01 am Post subject: |
|
|
Sometimes I prefer VDS 2 for the sole idea of the integrated EXEs.
One thing I find bad about extracting the runtime is that if the program
is on a CD etc., then it won't be able to extract it, since it is read-only.
VDS would be so much more popular though if there was an option to
create integrated EXEs. You have no idea how good that would be.
As for runtime size, I wouldn't mind having it a little bigger and a little
better.  _________________ FreezingFire
VDSWORLD.com
Site Admin Team |
|
| Back to top |
|
 |
|