# Win32 php4ts.dll 875k Larger in 5.1?

- Thread: https://externals.io/message/16946
- Original archive: https://news-web.php.net/php.internals/16946
- Started by Michael Sisolak on 2005-06-27T19:53:48+00:00
- Messages: 9
- Reply by email to internals@lists.php.net
- More for agents: search with https://externals.io/search.md?q={query} · JSON API at https://externals.io/api · documentation at https://externals.io/llms.txt

---

## #16946 — Michael Sisolak — 2005-06-27T19:53:48+00:00

URL: https://externals.io/message/16946#16946

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

---

## #16947 — Jani Taskinen — 2005-06-27T21:45:30+00:00

URL: https://externals.io/message/16946#16947 · In reply to: #16946

1.6MB timezonedb.h in ext/date/lib/ would be a good guess. :)

    --Jani




> 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

---

## #16948 — Derick Rethans — 2005-06-27T21:47:58+00:00

URL: https://externals.io/message/16946#16948 · In reply to: #16947

> 
>    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

---

## #16949 — DvDmanDT — 2005-06-28T01:43:31+00:00

URL: https://externals.io/message/16946#16949 · In reply to: #16948

Should those really be built into php4ts.dll?


"Derick Rethans" <derick@php.net> skrev i meddelandet 
news:Pine.LNX.4.62.0506272347320.14983@localhost...
> 
>
> > […]
>
> And two bundled SQLite libraries.... (timezone db is only 200kb).
>
> Derick
>
> -- 
> Derick Rethans
> http://derickrethans.nl | http://ez.no | http://xdebug.org

---

## #16955 — Andrey Hristov — 2005-06-28T06:26:38+00:00

URL: https://externals.io/message/16946#16955 · In reply to: #16949

Should it be named php4ts?

Andrey

Quoting DvDmanDT <dvdmandt@telia.com>:

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

---

## #16962 — Wez Furlong — 2005-06-28T14:03:03+00:00

URL: https://externals.io/message/16946#16962 · In reply to: #16949

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.


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

---

## #16963 — Derick Rethans — 2005-06-28T14:06:43+00:00

URL: https://externals.io/message/16946#16963 · In reply to: #16962

> 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

---

## #16965 — Wez Furlong — 2005-06-28T14:56:13+00:00

URL: https://externals.io/message/16946#16965 · In reply to: #16963

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.


> 
> 
> > […]
> 
> Jus twondering... windows has no non-pic thing?
> 
> Derick
> --
> Derick Rethans
> http://derickrethans.nl | http://ez.no | http://xdebug.org

---

## #16966 — William A. Rowe — 2005-06-28T16:55:26+00:00

URL: https://externals.io/message/16946#16966 · In reply to: #16965

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
