topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Thursday March 28, 2024, 7:15 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: Speed Load  (Read 2918 times)

manimatters

  • Participant
  • Joined in 2007
  • *
  • Posts: 57
    • View Profile
    • Donate to Member
Speed Load
« on: January 07, 2008, 04:05 AM »
Hey guys, yesterday, while browsing through the softwares ive collected, my eyes suddenly went wide open when i read this:-

Speed Load Beta 3

it was a gem and i thought it would sure be popular someday! :)

Heres what the author says on the website:
What is SpeedLoad? 

My experience with install programs has led me to the following conclusion:
90% of them are rubbish!
SpeedLoad monitors a program's activities and then optimises the application so it loads more quickly. If install programs done their job properly SpeedLoad would have nothing to do, but the sad fact is that most of them only do the bare minimum that is required to get the program up and running and little else.

What should a good installer do?

A good installer should do the following (as well as other things required by the software that it is installing):

Ensure that all DLL's the program uses are in different and non-overlapping addresses.
Ensure that the EXE is bound to the DLL's it uses.
The ramifications of the installer not ensuring that (1) is true:

 If two DLL's that a program is using overlap one of them has to be moved. The implications of this are that it takes time to relocate a DLL and secondly every page in the DLL that had to be modified as a result of the relocation process is forced into the page file. This will effect over all system performance, as there is more "load" on the paging system.

The ramifications of the installer not ensuring that (2) is true:

 An EXE maintains a list of functions that it needs from a particular DLL. There are two ways to refer to a function in a DLL. A function can be imported by name or by ordinal. When the system loads a DLL on behalf of the EXE the end result is that the addresses of the functions required by the EXE are inserted into the EXE’s IAT (Import Address Table). Binding is the process of using a pre-built IAT. The system loader checks the time/date stamp (not the time stamp maintained by the file system, an internal time/date stamp that is stored in the DLL which is generated by the linker when the DLL was built) of the DLL and checks that it matches the one that EXE has a pre-built IAT for. If they match the system doesn’t have to build an IAT, it just uses the pre-built one. If functions are imported by name (as is typical) then binding can result in considerable performance increases.

SpeedLoad does its best the ensure that both (1) and (2) are true.


http://www.angelfire...edload/speedload.htm
I remember i noted down somewhere to get the new version when it came out, but sadly it didnt. :o
Although i used it on some exe s that took a long time to load, and it did work for some, had no effect on others and made some others unusable :o (thank God i made backups before experimenting!) ;D

I was wondering why there isnt any other application that does what this software here does? I mean, i did feel "noticable" changes in loading time of some apps (I remember for sure, it helped in reducing the time it took for "TeaTimer" (the system settings protector that comes with Spybot)) to load. It seems as a good idea.

Is there something out there that does that kind of thing?

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Speed Load
« Reply #1 on: January 07, 2008, 05:08 AM »
Hm, unless copy protection is in play, bind+rebase should never invalidate an exe, unless the guy behind speedload is using his own exe modifying routines and haven't coded them properly.

bind+rebase is a good idea, and imho it should be done by installers, but I must confess that I haven't been able to measure much impact by doing it; if you have measured a speed boost, it's probably because you haven't rebooted after the bind, and thus files are cached etc.

Import binding is pretty fast, by the way - DLL exports are always sorted, and thus binary search can be (and is) used when searching for a matching export for an import from a EXE.
- carpe noctem