Fix or remove UCRT dlls in dependentlibs.list

NEW
Unassigned

Status

()

Core
Build Config
11 months ago
10 months ago

People

(Reporter: emk, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

11 months ago
dependentlibs.list does not follow the dependency transitively. For example, the dependency graph of universal CRT is as follows:
  xul.dll -> api-ms-win-crt-*.dll -> ucrtbase.dll -> api-ms-win-core-*.dll -> (system DLLs)
The current dependentlibs.list only contains api-ms-win-crt-*.dll (that is, direct xul.dll dependencies.)

But do we need this at all, given that the current incomplete list did not cause any problems? Rather, it caused a performance regression (bug 1264276). Moreover, we already removed some DLLs from the list to improve performance (bug 970123 and 978509).
(Reporter)

Updated

11 months ago
Summary: Fix or remove dependentlibs.list → Fix or remove UCRT dlls in dependentlibs.list

Comment 1

11 months ago
(In reply to Masatoshi Kimura [:emk] from comment #0)
> dependentlibs.list does not follow the dependency transitively. For example,
> the dependency graph of universal CRT is as follows:
>   xul.dll -> api-ms-win-crt-*.dll -> ucrtbase.dll -> api-ms-win-core-*.dll
> -> (system DLLs)
> The current dependentlibs.list only contains api-ms-win-crt-*.dll (that is,
> direct xul.dll dependencies.)
> 
> But do we need this at all, given that the current incomplete list did not
> cause any problems? Rather, it caused a performance regression (bug
> 1264276).

That's actually not necessarily a performance regression. That would need to be measured carefully on spinning disks.
(Reporter)

Comment 2

11 months ago
(In reply to Mike Hommey [:glandium] from comment #1)
> That's actually not necessarily a performance regression. That would need to
> be measured carefully on spinning disks.

If api-ms-win-core-*.dlls are in the API set[1], they will not even be read from the disk. On Win7, only 6 dlls are not in the API set. On Win8+, all api-ms-win-core-*.dlls are in the API set. On Win10, api-ms-win-crt-*.dlls are also in the API set (because UCRT is part of the system). It can only degrade performance to read ahead UCRT DLLs explicitly.

[1] https://msdn.microsoft.com/ja-jp/library/windows/desktop/hh802935(v=vs.85).aspx
You need to log in before you can comment on or make changes to this bug.