From 23c2fa447d7f5d577171778ae1a663d680a8635b Mon Sep 17 00:00:00 2001 From: Alexander Riccio Date: Wed, 1 Apr 2020 18:44:25 -0400 Subject: [PATCH 1/7] Tweak pcbuild settings to reduce the size of the pyshellext shell extension pyshellext.dll 32 bit size reduction: -17KB pyshellext_d.dll 32 bit size reduction: -53KB pyshellext.dll 64 bit size reduction: -22KB pyshellext_d.dll 64 bit size reduction: -67KB --- .../2020-04-01-18-44-11.bpo-40145.oG7AzX.rst | 4 + PCbuild/pyshellext.vcxproj | 160 ++++++++++++++++++ 2 files changed, 164 insertions(+) create mode 100644 Misc/NEWS.d/next/Windows/2020-04-01-18-44-11.bpo-40145.oG7AzX.rst diff --git a/Misc/NEWS.d/next/Windows/2020-04-01-18-44-11.bpo-40145.oG7AzX.rst b/Misc/NEWS.d/next/Windows/2020-04-01-18-44-11.bpo-40145.oG7AzX.rst new file mode 100644 index 000000000000000..0f4fd2fbd501971 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2020-04-01-18-44-11.bpo-40145.oG7AzX.rst @@ -0,0 +1,4 @@ +Tweaked the pcbuild options for pyshellext to reduce the size of the binary. +Since this is a very simple component, there really isn't much benefit of +optimizing for speed, likely the slowest part of this component's lifetime +is simply loading it. Total size reduction is approx 40% in release builds. diff --git a/PCbuild/pyshellext.vcxproj b/PCbuild/pyshellext.vcxproj index 655054e3723b431..87b0314c718080f 100644 --- a/PCbuild/pyshellext.vcxproj +++ b/PCbuild/pyshellext.vcxproj @@ -78,12 +78,66 @@ DynamicLibrary Unicode + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + ClCompile + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + @@ -92,11 +146,117 @@ _CONSOLE;%(PreprocessorDefinitions) + MinSpace + AnySuitable + Size + MinSpace + AnySuitable + Size + MinSpace + AnySuitable + Size + MinSpace + AnySuitable + Size + MinSpace + AnySuitable + Size + MinSpace + AnySuitable + Size + MinSpace + AnySuitable + Size + MinSpace + AnySuitable + Size + MinSpace + AnySuitable + Size + false + false + false + false + false + false + false + false + false + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + MinSpace + AnySuitable + Size + true + MinSpace + AnySuitable + Size + true + MinSpace + AnySuitable + Size + true + false + false + false version.lib;shlwapi.lib;%(AdditionalDependencies) Console ..\PC\pyshellext$(PyDebugExt).def + true + true + true + true + true + true + true + true + UseLinkTimeCodeGeneration + true + true + UseLinkTimeCodeGeneration + true + true + true + true + UseLinkTimeCodeGeneration + true + true + UseLinkTimeCodeGeneration + true + true + DebugFull + DebugFull + DebugFull + DebugFull + DebugFull + DebugFull + DebugFull + DebugFull + DebugFull + DebugFull + DebugFull + DebugFull + true + true + UseLinkTimeCodeGeneration + true + true + UseLinkTimeCodeGeneration + true + true + UseLinkTimeCodeGeneration true From 1a7a4d1a8bbbc650d99b730988b4f5709e1242fb Mon Sep 17 00:00:00 2001 From: Alexander Riccio Date: Tue, 16 Jun 2020 17:00:35 -0400 Subject: [PATCH 2/7] resuming work on patch after two month hiatus some changes uncommitted since last commit. committing now. --- PCbuild/pyshellext.vcxproj | 218 ++++++++++++++++++++++--------------- 1 file changed, 128 insertions(+), 90 deletions(-) diff --git a/PCbuild/pyshellext.vcxproj b/PCbuild/pyshellext.vcxproj index 87b0314c718080f..422ebf19f8fe3ce 100644 --- a/PCbuild/pyshellext.vcxproj +++ b/PCbuild/pyshellext.vcxproj @@ -78,66 +78,85 @@ DynamicLibrary Unicode - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - + + + true + + + false + + + + + + true + + + false + + + + + true + + + false + + + + + true + + + false + + + + + true + + + false + + + + + true + + + false + + + + + true + + + false + + + + + true + + + false + + + + + true + + + false + + ClCompile - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - @@ -146,42 +165,60 @@ _CONSOLE;%(PreprocessorDefinitions) - MinSpace - AnySuitable - Size - MinSpace - AnySuitable - Size - MinSpace - AnySuitable - Size - MinSpace - AnySuitable - Size - MinSpace - AnySuitable - Size - MinSpace - AnySuitable - Size - MinSpace - AnySuitable - Size - MinSpace - AnySuitable - Size - MinSpace - AnySuitable - Size - false - false - false - false - false - false - false - false - false + + MinSpace + AnySuitable + Size + false + + + MinSpace + AnySuitable + Size + false + + + MinSpace + AnySuitable + Size + false + + + MinSpace + AnySuitable + Size + false + + + MinSpace + + Size + false + + + MinSpace + AnySuitable + Size + false + + + MinSpace + AnySuitable + Size + false + + + MinSpace + AnySuitable + Size + false + + + MinSpace + AnySuitable + Size + false + /Zo /Zo /Zo @@ -194,6 +231,7 @@ /Zo /Zo /Zo + MinSpace AnySuitable Size From 16f909de73e3fdd3054228bbece426b4d0a8bdfd Mon Sep 17 00:00:00 2001 From: Alexander Riccio Date: Fri, 19 Jun 2020 20:26:59 -0400 Subject: [PATCH 3/7] didnt work was gonna finish this this week, but now my grandma is dying. --- PCbuild/pyshellext.vcxproj | 306 ++++++++++++++----------------------- 1 file changed, 112 insertions(+), 194 deletions(-) diff --git a/PCbuild/pyshellext.vcxproj b/PCbuild/pyshellext.vcxproj index 422ebf19f8fe3ce..aaabd1024cc9eb2 100644 --- a/PCbuild/pyshellext.vcxproj +++ b/PCbuild/pyshellext.vcxproj @@ -77,224 +77,142 @@ DynamicLibrary Unicode - - - - true - - - false - - - - - - true - - - false - - - - - true - - - false - - - - - true - - - false - - - - - true - - - false - - - - - true - - - false - - - - - true - - - false - - - - - true - - - false - - - - - true - - - false - - - - - - - ClCompile - - - - - - - - - _CONSOLE;%(PreprocessorDefinitions) + - MinSpace - AnySuitable - Size - false + + true + + - MinSpace - AnySuitable - Size - false + + true + - MinSpace - AnySuitable - Size - false + + true + - MinSpace - AnySuitable - Size - false + + true + - MinSpace - - Size - false + + true + - MinSpace - AnySuitable - Size - false + + true + - MinSpace - AnySuitable - Size - false + + true + - MinSpace - AnySuitable - Size - false + + true + - MinSpace - AnySuitable - Size - false + + true + - /Zo - /Zo - /Zo - /Zo - /Zo - /Zo - /Zo - /Zo - /Zo - /Zo - /Zo - /Zo + + - MinSpace - AnySuitable - Size - true - MinSpace - AnySuitable - Size - true - MinSpace - AnySuitable - Size - true - false - false - false + + false + + + + + + + + ClCompile + + + + + + + + + _CONSOLE;%(PreprocessorDefinitions) + MinSpace + AnySuitable + Size + false + /Zo + + + true + + + true + + + true + + version.lib;shlwapi.lib;%(AdditionalDependencies) Console ..\PC\pyshellext$(PyDebugExt).def - true - true - true - true - true - true - true - true - UseLinkTimeCodeGeneration - true - true - UseLinkTimeCodeGeneration - true - true - true - true - UseLinkTimeCodeGeneration - true - true - UseLinkTimeCodeGeneration - true - true - DebugFull - DebugFull - DebugFull - DebugFull - DebugFull - DebugFull - DebugFull - DebugFull - DebugFull - DebugFull - DebugFull - DebugFull - true - true - UseLinkTimeCodeGeneration - true - true - UseLinkTimeCodeGeneration - true - true - UseLinkTimeCodeGeneration + true + DebugFull + + + + true + + + true + + + true + UseLinkTimeCodeGeneration + + + true + UseLinkTimeCodeGeneration + + + true + + + true + UseLinkTimeCodeGeneration + + + true + UseLinkTimeCodeGeneration + + + true + + + true + UseLinkTimeCodeGeneration + + + true + UseLinkTimeCodeGeneration + + + true + UseLinkTimeCodeGeneration + + + true From 641dc793899737838f9c49ffc658ecb5387bf4a1 Mon Sep 17 00:00:00 2001 From: Alexander Riccio Date: Fri, 19 Jun 2020 20:27:27 -0400 Subject: [PATCH 4/7] didnt work was gonna finish this this week, but now my grandma is dying. --- PCbuild/pyshellext.vcxproj | 127 +++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) diff --git a/PCbuild/pyshellext.vcxproj b/PCbuild/pyshellext.vcxproj index aaabd1024cc9eb2..30b589302d29c7e 100644 --- a/PCbuild/pyshellext.vcxproj +++ b/PCbuild/pyshellext.vcxproj @@ -77,6 +77,7 @@ DynamicLibrary Unicode +<<<<<<< HEAD @@ -132,12 +133,72 @@ +======= + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + +>>>>>>> parent of 1a7a4d1a8b... resuming work on patch after two month hiatus ClCompile +<<<<<<< HEAD +======= + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + +>>>>>>> parent of 1a7a4d1a8b... resuming work on patch after two month hiatus @@ -146,6 +207,7 @@ _CONSOLE;%(PreprocessorDefinitions) +<<<<<<< HEAD MinSpace AnySuitable Size @@ -162,6 +224,71 @@ true +======= + MinSpace + AnySuitable + Size + MinSpace + AnySuitable + Size + MinSpace + AnySuitable + Size + MinSpace + AnySuitable + Size + MinSpace + AnySuitable + Size + MinSpace + AnySuitable + Size + MinSpace + AnySuitable + Size + MinSpace + AnySuitable + Size + MinSpace + AnySuitable + Size + false + false + false + false + false + false + false + false + false + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + MinSpace + AnySuitable + Size + true + MinSpace + AnySuitable + Size + true + MinSpace + AnySuitable + Size + true + false + false + false +>>>>>>> parent of 1a7a4d1a8b... resuming work on patch after two month hiatus version.lib;shlwapi.lib;%(AdditionalDependencies) From c4a5a0eeab275b4531bc6c421fe0db264ca2d54c Mon Sep 17 00:00:00 2001 From: Alexander Riccio Date: Fri, 19 Jun 2020 20:27:38 -0400 Subject: [PATCH 5/7] Revert "didnt work" This reverts commit 641dc793899737838f9c49ffc658ecb5387bf4a1. --- PCbuild/pyshellext.vcxproj | 127 ------------------------------------- 1 file changed, 127 deletions(-) diff --git a/PCbuild/pyshellext.vcxproj b/PCbuild/pyshellext.vcxproj index 30b589302d29c7e..aaabd1024cc9eb2 100644 --- a/PCbuild/pyshellext.vcxproj +++ b/PCbuild/pyshellext.vcxproj @@ -77,7 +77,6 @@ DynamicLibrary Unicode -<<<<<<< HEAD @@ -133,72 +132,12 @@ -======= - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - ->>>>>>> parent of 1a7a4d1a8b... resuming work on patch after two month hiatus ClCompile -<<<<<<< HEAD -======= - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - ->>>>>>> parent of 1a7a4d1a8b... resuming work on patch after two month hiatus @@ -207,7 +146,6 @@ _CONSOLE;%(PreprocessorDefinitions) -<<<<<<< HEAD MinSpace AnySuitable Size @@ -224,71 +162,6 @@ true -======= - MinSpace - AnySuitable - Size - MinSpace - AnySuitable - Size - MinSpace - AnySuitable - Size - MinSpace - AnySuitable - Size - MinSpace - AnySuitable - Size - MinSpace - AnySuitable - Size - MinSpace - AnySuitable - Size - MinSpace - AnySuitable - Size - MinSpace - AnySuitable - Size - false - false - false - false - false - false - false - false - false - /Zo - /Zo - /Zo - /Zo - /Zo - /Zo - /Zo - /Zo - /Zo - /Zo - /Zo - /Zo - MinSpace - AnySuitable - Size - true - MinSpace - AnySuitable - Size - true - MinSpace - AnySuitable - Size - true - false - false - false ->>>>>>> parent of 1a7a4d1a8b... resuming work on patch after two month hiatus version.lib;shlwapi.lib;%(AdditionalDependencies) From 7c6152f632a050f9e628c81b356771dac6004bcc Mon Sep 17 00:00:00 2001 From: Alexander Riccio Date: Fri, 19 Jun 2020 20:27:42 -0400 Subject: [PATCH 6/7] Revert "didnt work" This reverts commit 16f909de73e3fdd3054228bbece426b4d0a8bdfd. --- PCbuild/pyshellext.vcxproj | 306 +++++++++++++++++++++++-------------- 1 file changed, 194 insertions(+), 112 deletions(-) diff --git a/PCbuild/pyshellext.vcxproj b/PCbuild/pyshellext.vcxproj index aaabd1024cc9eb2..422ebf19f8fe3ce 100644 --- a/PCbuild/pyshellext.vcxproj +++ b/PCbuild/pyshellext.vcxproj @@ -77,142 +77,224 @@ DynamicLibrary Unicode - + + + + true + + + false + + + + + + true + + + false + + + + + true + + + false + + + + + true + + + false + + + + + true + + + false + + + + + true + + + false + + + + + true + + + false + + + + + true + + + false + + + + + true + + + false + + + + + + + ClCompile + + + + + + + + + _CONSOLE;%(PreprocessorDefinitions) - - true - + MinSpace + AnySuitable + Size + false - - - true - + MinSpace + AnySuitable + Size + false - - true - + MinSpace + AnySuitable + Size + false - - true - + MinSpace + AnySuitable + Size + false - - true - + MinSpace + + Size + false - - true - + MinSpace + AnySuitable + Size + false - - true - + MinSpace + AnySuitable + Size + false - - true - + MinSpace + AnySuitable + Size + false - - true - + MinSpace + AnySuitable + Size + false - - + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo + /Zo - - false - - - - - - - - ClCompile - - - - - - - - - _CONSOLE;%(PreprocessorDefinitions) - MinSpace - AnySuitable - Size - false - /Zo - - - true - - - true - - - true - - + MinSpace + AnySuitable + Size + true + MinSpace + AnySuitable + Size + true + MinSpace + AnySuitable + Size + true + false + false + false version.lib;shlwapi.lib;%(AdditionalDependencies) Console ..\PC\pyshellext$(PyDebugExt).def - true - DebugFull - - - - true - - - true - - - true - UseLinkTimeCodeGeneration - - - true - UseLinkTimeCodeGeneration - - - true - - - true - UseLinkTimeCodeGeneration - - - true - UseLinkTimeCodeGeneration - - - true - - - true - UseLinkTimeCodeGeneration - - - true - UseLinkTimeCodeGeneration - - - true - UseLinkTimeCodeGeneration - - - + true + true + true + true + true + true + true + true + UseLinkTimeCodeGeneration + true + true + UseLinkTimeCodeGeneration + true + true + true + true + UseLinkTimeCodeGeneration + true + true + UseLinkTimeCodeGeneration + true + true + DebugFull + DebugFull + DebugFull + DebugFull + DebugFull + DebugFull + DebugFull + DebugFull + DebugFull + DebugFull + DebugFull + DebugFull + true + true + UseLinkTimeCodeGeneration + true + true + UseLinkTimeCodeGeneration + true + true + UseLinkTimeCodeGeneration true From 6bb0b2801aeb90fa2657ef5d3b5fb89c45357fda Mon Sep 17 00:00:00 2001 From: Alexander Riccio Date: Tue, 1 Dec 2020 15:53:27 -0500 Subject: [PATCH 7/7] trash changes, store for records --- PCbuild/pcbuild.sln | 32 +++++ PCbuild/pyshellext.vcxproj | 274 ++++++++++++++++++++----------------- 2 files changed, 180 insertions(+), 126 deletions(-) diff --git a/PCbuild/pcbuild.sln b/PCbuild/pcbuild.sln index 61db4e02ad38370..4b6dc1e6771dc3d 100644 --- a/PCbuild/pcbuild.sln +++ b/PCbuild/pcbuild.sln @@ -1267,6 +1267,38 @@ Global {384C224A-7474-476E-A01B-750EA7DE918C}.Release|Win32.Build.0 = Release|Win32 {384C224A-7474-476E-A01B-750EA7DE918C}.Release|x64.ActiveCfg = Release|x64 {384C224A-7474-476E-A01B-750EA7DE918C}.Release|x64.Build.0 = Release|x64 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Debug|ARM.ActiveCfg = Debug|ARM + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Debug|ARM.Build.0 = Debug|ARM + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Debug|ARM64.Build.0 = Debug|ARM64 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Debug|Win32.ActiveCfg = Debug|Win32 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Debug|Win32.Build.0 = Debug|Win32 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Debug|x64.ActiveCfg = Debug|x64 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Debug|x64.Build.0 = Debug|x64 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGInstrument|ARM.ActiveCfg = PGInstrument|ARM + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGInstrument|ARM.Build.0 = PGInstrument|ARM + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGInstrument|ARM64.ActiveCfg = PGInstrument|ARM64 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGInstrument|ARM64.Build.0 = PGInstrument|ARM64 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGUpdate|ARM.ActiveCfg = PGUpdate|ARM + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGUpdate|ARM.Build.0 = PGUpdate|ARM + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGUpdate|ARM64.ActiveCfg = PGUpdate|ARM64 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGUpdate|ARM64.Build.0 = PGUpdate|ARM64 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Release|ARM.ActiveCfg = Release|ARM + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Release|ARM.Build.0 = Release|ARM + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Release|ARM64.ActiveCfg = Release|ARM64 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Release|ARM64.Build.0 = Release|ARM64 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Release|Win32.ActiveCfg = Release|Win32 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Release|Win32.Build.0 = Release|Win32 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Release|x64.ActiveCfg = Release|x64 + {FCBE1EF2-E0F0-40B1-88B5-00A35D378742}.Release|x64.Build.0 = Release|x64 {78D80A15-BD8C-44E2-B49E-1F05B0A0A687}.Debug|ARM.ActiveCfg = Debug|ARM {78D80A15-BD8C-44E2-B49E-1F05B0A0A687}.Debug|ARM.Build.0 = Debug|ARM {78D80A15-BD8C-44E2-B49E-1F05B0A0A687}.Debug|ARM64.ActiveCfg = Debug|ARM64 diff --git a/PCbuild/pyshellext.vcxproj b/PCbuild/pyshellext.vcxproj index 422ebf19f8fe3ce..d31caf153457ecf 100644 --- a/PCbuild/pyshellext.vcxproj +++ b/PCbuild/pyshellext.vcxproj @@ -78,79 +78,81 @@ DynamicLibrary Unicode - - - true - - - false - - + + + + true + + + false + + - - - true - - - false - - - - - true - - - false - - - - - true - - - false - - - - - true - - - false - - - - - true - - - false - - - - - true - - - false - - - - - true - - - false - - - - - true - - - false - - + + + true + + + false + + + + + true + + + false + + + + + true + + + false + + + + + true + + + false + + + + + true + + + false + + + + + true + + + false + + + + + true + + + false + + + + + true + + + false + + + @@ -165,60 +167,80 @@ _CONSOLE;%(PreprocessorDefinitions) - - MinSpace - AnySuitable - Size - false - - - MinSpace - AnySuitable - Size - false - - - MinSpace - AnySuitable - Size - false - - - MinSpace - AnySuitable - Size - false - - - MinSpace - - Size - false - - - MinSpace - AnySuitable - Size - false - - - MinSpace - AnySuitable - Size - false - - - MinSpace - AnySuitable - Size - false - - - MinSpace - AnySuitable - Size - false - + + + + MinSpace + AnySuitable + Size + false + + + + + MinSpace + AnySuitable + Size + false + + + + + MinSpace + AnySuitable + Size + false + + + + + MinSpace + AnySuitable + Size + false + + + + + MinSpace + AnySuitable + Size + false + + + + + MinSpace + AnySuitable + Size + false + + + + + MinSpace + AnySuitable + Size + false + + + + + MinSpace + AnySuitable + Size + false + + + + + MinSpace + AnySuitable + Size + false + + + /Zo /Zo /Zo