New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MSVCP140.dll not found (Browser requires separate runtime for something IDK) #204
Comments
The runtime is statically linked into the browser. It is not necessary and in my test VM it's running with only VC++ 2008 runtimes and below without errors. Something completely independent of the browser is looking for the runtime. Ultimately I think chrome.dll should be rebased. It seems that on some configurations some of these extra DLLs (progwrp was rebased away from chrome.dll's image base for that reason) "take chrome.dll's spot" and causing memory usage to go up significantly. Ultimately it means that massive executables should be discouraged on NT 5.x and below for that reason. |
You can use the switches Anyway, the Visual C++ memory usage issue is caused by two files in the runtime: api-ms-win-core-synch-l1-2-0.dll and api-ms-win-core-string-l1-1-0.dll, which displace chrome.dll because they are loaded before chrome.dll is, while using the same image base. When those are rebased, chrome.dll should no longer be forced to load above its image base and should use considerably less memory. I will rebase them when I return to the development system later today. |
Thank you! You're just "God level" in a good way! |
I just tried these restructured DLLs on the previous (121) and latest version (121 hotfixed), the memory error disappeared after running Supermium: But other errors occurred (21 times one after another) before the GUI Supermium started, i.e. before the main window appears: chrome.exe - Invalid image In these 21 errors, only the name of the DLL "api-ms..." changes, the rest of the text remains the same. DLL name order:
I've placed the new api-ms next to chrome.exe: Please fix it... |
Surprised to see that the api-sets were being seen as invalid PE images, as my own test systems accept them without issue. I decided to compile brand new ones. |
Will these offer any benefit to Supermium on a Windows 11 machine? |
Windows has the latest dll files |
I mean, changing the base address of the latest version of them or the ones I mentioned in another issue. |
Probably none of the things you mentioned above |
No. Windows Vista and up do not have an issue with high virtual memory usage resulting from relocated DLLs. |
Okay. |
WOW! Your latest versions of "api-ms" work without any errors!!! You just can't imagine how grateful I am to you! |
One last thing, I'll say a little off topic, but the whole reason why this VC Redist 2015-2019 is needed under Windows XP is the ability to return TLS 1.3 in-system functionality for Windows XP (working "WebRequest" with TLS 1.3 for other programs that rely on system Windows crypto libraries), described in this topic If I find the time, I need to freak out and port it all to C# and the .NET Framework - write a Windows service, take the same openssl, compile it without unnecessary dependencies, make a PInvoke to it and directly wedge the service and GUI for settings for this product into one process.. . Thank you again! |
this fix didn't serve me well. the RAM usage is the same whether with or without those 2 api files |
Do you have the Visual C++ 2015-19 runtime installed? |
-let's gonna summarize this history with as much details as possible. -here is the post #207 (comment) of when I first benched the RAM usage 5 days back -RAM usage with 🔟 youtube tabs did exceed or was nearly as much as the XP x86 RAM limitation which is about 3.25GB -this one was the Supermium's 121 (1st release) -some days later I put the rebased dll files next to chrome.exe -not only did it not work #200 (comment) but also auto deleted all of my api-ms-win-crt files from the WINDOWS/system32 folder. -today I restored my XP backup image (fully updated with POSReady updates) -I also had to restore Windows Installer process msiexec /regserver which was disabled for no apparent reason -this way I could install the VC++ AIO package from abbodi1406/vcredist#67 -I repeat the same exact bench test with 🔟 youtube tabs -when launching 2-3 youtube tabs, RAM usage gets past the 3.25GB limit -I repeat the same exact bench test with the corrected dll files -this time I can again open the 🔟 youtube tabs with barely 3.15GB or so. 🔴 conclusion: the fix does the job but doesn't really improve my first scores. maybe and just maybe... the NVIDIA driver comes into play because I was using an old driver brought out by Legacy Update and this time I installed the latest one (368.81) from NVIDIA website and maybe this gets the computer to eat up much more RAM....go figure @win32ss |
If you can run Process Hacker, click on one of the chrome.exe processes and click on the "modules" tab and see if chrome.dll is outlined in orange, then something else is displacing it from its preferred address (0x1000000) and causing the memory usage to spike. |
is this a typo ? on my testbed computer (above tests) the base address is (0x10000000) but it's NOT outlined in orange on the other hand my 360chrome version which works flawlessly and consumes much less RAM makes use of the nº4 chrome.dll file and it's NOT outlined in orange either. |
It was a typo, but the screenshot explains why it's happening; another DLL displacing chrome.dll. At this point I may as well rebase chrome.dll farther downward, perhaps to 0x10100000. |
... Yes, it's andika207: Do you have that Security Suite installed and, if yes, does it still receive def updates? Kind regards. |
I thought you had some kind of crap with other software... |
I installed it by september 2022 in my secondary (currently) disk in the attempt of ''repairing'' my main XP disk partition (no luck) but actually have not used it since... in fact I don't use any real-time AV I have just launched it for you... ⏬ |
I performed my bench test once again and this time Supermium took up less RAM, just about 2.80GB |
Thanks 😄 ; as I see in your sceengrab 👍 , it isn't getting updated definitions anymore (but the "statusbar" notification is ambivalent in that respect) , so might as well ditch it altogether (just my 2c, ofc), especially since you're not actively using it, by your own admission 😉 ...
... But, as shown in your first attachment above, one of its DLLs ( Regards. |
Have you set the same settings for Supermium and chromium 115? And even if the settings are the same, it would be fair that the 121 engine consumes a little more than the 115... Do you use a page file or disable it? |
I didn't mess around with settings, everything is set up by default with no extensions it's not recommended to disable the page file regardless how much RAM it's available |
@andika207 Without Supermium, windows XP uses 523.42Mb of RAM out of 3,233GB I don’t yet know how to solve your problem with over-consuming RAM. Perhaps my RAM numbers will be a guide for you... |
what makes you think this outcome is better than mine ? (11 tabs = 2.80GB) |
I didn’t read your previous post to the end and missed out on the 11 Youtube tabs (I only read up to 3 tabs) Let it be only for comparison about 3 Youtube tabs |
it's only 1M gap for "extra" unexpected dlls move it to 0x11000000 or 0x20000000 |
OS: Windows XP SP3
I receive this error every time I start up the browser, but it starts without any problem after closing the error dialog.
Anyway, I was never required to install a VC++ runtime for a browser (all came with their own).
And I especially don't want to install 2015-2019 because whenever I install it, I see a huge increase in memory consumption of Chromium-based browsers (from 150-200 MB idle to 1-1.5 GB idle 😮).
So what causes this error (what component requires it) if the browser runs without any problem?
The text was updated successfully, but these errors were encountered: