Win32 php4ts.dll 875k Larger in 5.1?

php.internals

Michael Sisolak

21 years ago
The default build of php4ts.dll has grown from 3,421k in 5.0.4 to 4,297k in 5.1.0b2 (an increase of over 25%). Does anyone know what the change was that had such a dramatic effect on the size of the DLL? Michael Sisolak msisolak@yahoo.com ____________________________________________________ Yahoo! Sports Rekindle the Rivalries. Sign up for Fantasy Football http://football.fantasysports.yahoo.com

Jani Taskinen

21 years ago
1.6MB timezonedb.h in ext/date/lib/ would be a good guess. :) --Jani On Mon, 27 Jun 2005, Michael Sisolak wrote:
> The default build of php4ts.dll has grown from 3,421k in 5.0.4 to > 4,297k in 5.1.0b2 (an increase of over 25%). Does anyone know what the > change was that had such a dramatic effect on the size of the DLL? > > Michael Sisolak > msisolak@yahoo.com > > > > ____________________________________________________ > Yahoo! Sports > Rekindle the Rivalries. Sign up for Fantasy Football > http://football.fantasysports.yahoo.com > >
-- Donate @ http://pecl.php.net/wishlist.php/sniper

Derick Rethans

21 years ago
On Tue, 28 Jun 2005, Jani Taskinen wrote:
> > 1.6MB timezonedb.h in ext/date/lib/ would be a good guess. :)
And two bundled SQLite libraries.... (timezone db is only 200kb). Derick
-- Derick Rethans http://derickrethans.nl | http://ez.no | http://xdebug.org

DvDmanDT

21 years ago
Should those really be built into php4ts.dll? "Derick Rethans" <derick@php.net> skrev i meddelandet news:Pine.LNX.4.62.0506272347320.14983@localhost...

Andrey Hristov

21 years ago
Should it be named php4ts? Andrey Quoting DvDmanDT <dvdmandt@telia.com>:

Wez Furlong

21 years ago
It doesn't hurt anything; in fact, a single big DLL is more resource efficient than a number of smaller DLLs on win32, as the kernel doesn't need to spend as much time relocating the DLLs. --Wez. On 6/27/05, DvDmanDT <dvdmandt@telia.com> wrote:

Derick Rethans

21 years ago
On Tue, 28 Jun 2005, Wez Furlong wrote:
> It doesn't hurt anything; in fact, a single big DLL is more resource > efficient than a number of smaller DLLs on win32, as the kernel > doesn't need to spend as much time relocating the DLLs.
Jus twondering... windows has no non-pic thing? Derick
-- Derick Rethans http://derickrethans.nl | http://ez.no | http://xdebug.org

Wez Furlong

21 years ago
It does things differently; it compiles the DLLs to run at a particular base address; provided every DLL is compiled at a different base, then it can be mapped directly into the right memory space. If there are overlaps between the compiled bases, then the loader can relocate DLLs until it figures out the best way to fit them all into the address space. This step becomes more expensive and more likely to occur as the quantity of DLLs used by a process increases. This is a rough explantation, based on an article I read about a year ago. If I'm wrong, then I cite misinformation as the cause ;-) --Wez. On 6/28/05, Derick Rethans <derick@php.net> wrote:

William A. Rowe, Jr.

21 years ago
At 01:26 AM 6/28/2005, Andrey Hristov wrote:
>Should it be named php4ts?
ewww - certainly not. Win32 has no problem with loading two modules, e.g. php4ts and php5ts, mod_php4 and mod_php5 all in the same process. But not if the dll names collide. At 09:56 AM 6/28/2005, Wez Furlong wrote:
>If there are overlaps between the compiled bases, then the loader can >relocate DLLs until it figures out the best way to fit them all into >the address space. This step becomes more expensive and more likely >to occur as the quantity of DLLs used by a process increases.
Yup. The most effective solution is to use the rebase command to generate a base address list, and in the linker command, use the construct /base:"baseref.lst",modname which will drop everything in expected locations. All flavors of apr and apache use this. Almost 1mb sure sounds like a candidate for unbundling from the core. Bill

Andi Gutmans

21 years ago
That's pretty accurate. Same happens on systems like SGI where you can optimize with base addresses. It can allow you to speed up loading time if you have a self contained app but partition it into DLLs. At 10:56 AM 6/28/2005 -0400, Wez Furlong wrote:

Michael Sisolak

21 years ago
Derick, I did a quick build without the date extension and php5ts.dll dropped 296kb. I did some additional digging. Some of the additional is because of the new PDO object, and some becuase PCRElib doubled in size. But the object file that really jumped in size was zend_execute.obj: from 271kb in 5.0.4 to 818kb in 5.1.0b2. Since it's not an extension I can turn off to test I can't tell how much of that change in the object file ends up getting linked into php5ts.dll. Does this tripling of the size of zend_execute make sense? If it does then it is what it is, but I just want to make sure that what's happening here is what people expected. Michael --- Derick Rethans <derick@php.net> wrote:
> On Tue, 28 Jun 2005, Jani Taskinen wrote: > > > > > 1.6MB timezonedb.h in ext/date/lib/ would be a good guess. :) > > And two bundled SQLite libraries.... (timezone db is only 200kb). > > Derick > > -- > Derick Rethans > http://derickrethans.nl | http://ez.no | http://xdebug.org >
__________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com

Andi Gutmans

21 years ago
Makes sense and brings much better performance to PHP. At 12:38 PM 6/28/2005 -0700, Michael Sisolak wrote: