Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#2110 closed Feature Request (Rejected)

autoit.exe -> autoit.exe + autoit.dll

Reported by: Ontosy Owned by:
Milestone: Component: AutoIt
Version: Severity: None
Keywords: Cc:


I like the idea about autoit to be separated in one dll, and a small exe which makes calls to this dll.
I'm asking that the bulk of AutoIt be in dll form so that it is only loaded into memory once instead of for every script that needs to be executed.
Just because most of you probably have >1GB of ram and autoit.exe currently consumes only several megabites of it, does not mean it will not be better to even lower this usage. And it does not mean because our PC's are fast, the programs which run on them must not be optimized and with minimal memory requirements.
The lower requirements your program have, the better programmer you are.

Attachments (0)

Change History (7)

comment:1 Changed 12 years ago by TicketCleanup

  • Version deleted

Automatic ticket cleanup.

comment:2 Changed 12 years ago by Valik

  • Resolution set to Rejected
  • Status changed from new to closed

If you're going to get anal over the size of AutoIt then piss off and write everything in assembly so you can control every byte. You're missing the point of a high level language if you aren't willing to sacrifice a bit of size and performance for a lot of convenience.

Also, I don't think Windows works how you think it does. Each process is going to load their own copy of the DLL so it's still going to take up memory even with your stupid idea.

Lastly. Greater than 1GB of memory? I've used more than 1GB of memory for 5 years or more. I have 8GB of memory and that's about average now-a-days I think. Your "complaint" is really about a decade too late and it was as irrelevant then as it is now.

Ticket rejected with extreme prejudice (and ridicule).

comment:3 Changed 12 years ago by Ontosy <spora@…>

DLL stands for "Dynamic Link Library." A DLL (.dll) file contains a library of functions and other information that can be accessed by a Windows program. If a dynamic link is created, the .dll files will only be used when needed. Dynamic links help programs use resources, such as memory and hard drive space, more efficiently. DLL files can also be used by more than one program.
It is possible for you , you try to answer as clean (anal, piss, stupid, ridicule, ...).

comment:4 Changed 12 years ago by Jpm

In fact you may use the .a3x compilation which allow you to have only one executable for all scripts.

comment:5 Changed 12 years ago by Valik

You're an idiot. There's really no easier way I can put it. You're reading something you don't understand and taking it out of context. DLL's save hard drive space because only one copy needs to exist. Okay, we have that. Use AutoIt3.exe so you only have one runtime engine rather than compiling your scripts to duplicate the runtime engine. We've solved that problem already. As JP also mentions, you can compile your scripts to a special format so they aren't plain text. So score one for your stupidity in missing features that already exist.

Second, memory. DLL's can be loaded on-demand thus saving memory when the DLL isn't needed. Newsflash genius, a DLL of AutoIt would need to be loaded for an AutoIt script to execute - at all. So guess how much memory you save? None! You're operating under the mistaken assumption that all scripts will reference a single DLL loaded into memory. That is incorrect. Windows isolates each process into it's own virtual address space and that includes loading new, pristine copies of DLL's from disk into the new process' address space. In other words, you aren't saving memory.

You're just asking us to needlessly complicate the language and it's use for a really ridiculous reason. Hard drive and memory space has never been an issue with AutoIt. We occasionally get some stupid fuck like you who doesn't find that good enough. They usually meet me and I tell them to fuck off. So fuck off.

comment:6 Changed 12 years ago by anonymous

First DLL's not only save hard drive space but above all save space in MEMORY.
Use AutoIt3.exe to run .a3x files
use of AutoIt3.exe involves the use of many autoit3.exe those scripts . Instead the use of DLL involves the use of a single dll and many autoti3.exe but that are minimal because it only loads the dll.
Secondary, if more than one process is using a DLL at the same time, they share the DLL's code.
However, if you continue to insult forget.

comment:7 Changed 12 years ago by Valik

It's clear you selectively read. Yes, it's possible under very specific circumstances to share a DLL. Very specific circumstances. The off-shoot of that is you introduce he risk DLL Hell if you have more than one version of AutoIt installed. Which is going to be every single user of the beta. I don't know about other people but I have compiled scripts in more than one directory. That means I would have more than one DLL location which means either DLL Hell or I gain NOTHING from your suggestion.

Further more, one of the biggest aspects of AutoIt is that it's stand-alone. This breaks that. The only way to keep AutoIt stand-alone is to use tricks to load the DLL ourselves which defeats your stupid idea.

Do you really have so many AutoIt processes running at a given time to make this worthwhile? I don't. I don't have enough AutoIt processes running when I build AutoIt and there can be half a dozen or more instances of AutoIt running in our build scripts.

This is an incredibly stupid request. It's based on ignorance and complete lack of understanding of AutoIt, AutoIt's design principles and how Windows works. Furthermore it is completely irrelevant. The cost of a typical computer now-a-days is about 2 weeks with average salary. Computers from 15 years ago can still run AutoIt easily. We don't have a bloated, dependency-laden application and you want to break that because you're worried about a few MB of memory?

Let's play with numbers. I have 8GB of memory which is pretty standard. What the fuck do I care if AutoIt uses 8MB per process? That's 0.09765625% of my available memory. Lots of people have multiple GB of memory. Even an old machine with paltry 512MB still equates to only 1.5625% of total memory for a single AutoIt process. Even if we figure in 384MB for OS use on a 512MB system we can still easily run 16 simultaneous AutoIt processes. That's without even considering the OS will disk swap so we really can run more than that. I'm a developer of AutoIt. Do you know how many times I've had 16 simultaneous AutoIt processes running? Only when I accidentally introduce a recursive Run() loop into my program causing it to spawn copies of itself. In other words, I've never intentionally had that many running despite having an elaborate build system setup for AutoIt that makes liberal use of process isolation.

Your request has zero merit.

Guidelines for posting comments:

  • You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
  • In-depth discussions should take place on the forum.

For more information see the full version of the ticket guidelines here.

Add Comment

Modify Ticket

as closed The ticket will remain with no owner.

E-mail address and user name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.