Closed rkeithhill closed 4 years ago
Does Ctrl+C help?
In the integrated terminal? For some reason, the integrated terminal is not appearing in my list of terminals.
Also, seems my PS Session is still using RC.3 even though I upgraded to the GA release.
It's probably defaulting to preview. Try switching to PowerShell (x64)
OK, now on PS 7 GA and have PSIC displaying. I had done some experimenting with settings a while back and apparently set showOnStartup to false. Fixed.
Are you running anything in the time before the completions fail?
I'm getting sluggish completions, but haven't been able to repro this yet
No, not running anything. I can do a develop reload window and try auto-completion and initially, it works OK but gets slower. Some context, these couple of PS scripts are in a project that houses an Electron app with several Angular lib projects. That's six node_modules
directories and 295,000 files.
That's six node_modules directories and 295,000 files.
Wow. Hmm yeah I suspect this is related to that. I think there might be a simple fix here that we've been overlooking for a while, where we need to filter out bad files...
I'm thinking of https://github.com/PowerShell/vscode-powershell/issues/1256#issuecomment-504842937
That just encourages me to get back to work on PSScriptAnalyzer...
No, not running anything. I can do a develop reload window and try auto-completion and initially, it works OK but gets slower. Some context, these couple of PS scripts are in a project that houses an Electron app with several Angular lib projects. That's six
node_modules
directories and 295,000 files.
I'm also getting a slow down on auto-complete. Even with a project containing only a few files.
@rjmholt do you know which release of PackageManagement
had the dead lock fix? And do you know if that's included with anything?
I think I've seen it recently, but didn't look into it past confirming the thread was stuck getting tab completion for Install-Package
. Might just be my environment though.
do you know which release of PackageManagement had the dead lock fix?
1.4.5 I believe
And do you know if that's included with anything?
So far as I know, it's only included with PowerShell.
But that is a good recommendation. Try updating PackageManagement
if you can
Yep I had a copy at the user level that was 1.4.4, that was getting imported instead of the 1.4.6 at the machine level. Not sure why, I could have sworn it would pull the latest.
It may be worth considering including PackageManagement
with the extension 😕
It may be worth considering including PackageManagement with the extension 😕
Hmmm, that's an idea, although we'd need to import it differently the way the module path works.
Curious to know if the others in this thread have an old version of PackageManagement hiding. @rkeithhill @mrboring
@TylerLeonhardt, I have two, one is for 5.1:
> get-module PackageManagement -ListAvailable | fl *
LogPipelineExecutionDetails : False
Name : PackageManagement
Path : C:\program files\powershell\7\Modules\PackageManagement\PackageManagement.psd1
ImplementingAssembly :
Definition :
Description : PackageManagement (a.k.a. OneGet) is a new way to discover and install software packages from around the web.
It is a manager or multiplexor of existing package managers (also called package providers) that unifies Windows package management with a single Windows PowerShell interface. With PackageManagement, you can do the following.
- Manage a list of software repositories in which packages can be searched, acquired and installed
- Discover software packages
- Seamlessly install, uninstall, and inventory packages from one or more software repositories
Guid : 4ae9fd46-338a-459c-8186-07f910774cb8
HelpInfoUri : https://go.microsoft.com/fwlink/?linkid=2113634
ModuleBase : C:\program files\powershell\7\Modules\PackageManagement
PrivateData : {PSData}
ExperimentalFeatures : {}
Tags : {PackageManagement, PSEdition_Core, PSEdition_Desktop, Linux…}
ProjectUri : https://oneget.org/
IconUri :
LicenseUri :
ReleaseNotes : ## 1.4.6
- Update `HelpInfoUri` to point to the latest content
## 1.4.5
- Bug fix for deadlock when getting parameters in an event
## 1.4.4
- Bug fix when installing modules from private feeds
## 1.4.3
- Another bug fix when registering repositories with PowerShellGet
## 1.4.2
- Bug fix for passing credentials from PowerShellGet when registering repositories
## 1.4.1
- Bug fix for using credential provider installed in Visual Studio
## 1.4
- Allow credential persistance for registering private repositories and finding or installing packages from those repositories
## 1.3.2
- Enable bootstrap on PSCore
- Bug fix to run on .NET Core 3.0
## 1.3.1
- Targets net452 and netstandard2.0 instead of net451, netcoreapp2.0, and netstandard1.6
## Previous releases are not included in this Changelog
RepositorySourceLocation :
Version : 1.4.6
ModuleType : Script
Author : Microsoft Corporation
AccessMode : ReadWrite
ClrVersion : 4.0
CompanyName : Microsoft Corporation
Copyright : (C) Microsoft Corporation. All rights reserved.
DotNetFrameworkVersion :
ExportedFunctions : {}
Prefix :
ExportedCmdlets : {[Find-Package, Find-Package], [Get-Package, Get-Package], [Get-PackageProvider, Get-PackageProvider], [Get-PackageSource, Get-PackageSource]…}
ExportedCommands : {[Find-Package, Find-Package], [Get-Package, Get-Package], [Get-PackageProvider, Get-PackageProvider], [Get-PackageSource, Get-PackageSource]…}
FileList : {}
CompatiblePSEditions : {}
ModuleList : {}
NestedModules : {}
PowerShellHostName :
PowerShellHostVersion :
PowerShellVersion : 3.0
ProcessorArchitecture : None
Scripts : {}
RequiredAssemblies : {}
RequiredModules : {}
RootModule : PackageManagement.psm1
ExportedVariables : {}
ExportedAliases : {}
ExportedDscResources : {}
SessionState :
OnRemove :
ExportedFormatFiles : {C:\program files\powershell\7\Modules\PackageManagement\PackageManagement.format.ps1xml}
ExportedTypeFiles : {}
LogPipelineExecutionDetails : False
Name : PackageManagement
Path : C:\Program Files (x86)\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\PackageManagement.psd1
ImplementingAssembly :
Definition :
Description : PackageManagement (a.k.a. OneGet) is a new way to discover and install software packages from around the web.
It is a manager or multiplexor of existing package managers (also called package providers) that unifies Windows package management with a single Windows PowerShell interface. With PackageManagement, you can do the following.
- Manage a list of software repositories in which packages can be searched, acquired and installed
- Discover software packages
- Seamlessly install, uninstall, and inventory packages from one or more software repositories
Guid : 4ae9fd46-338a-459c-8186-07f910774cb8
HelpInfoUri : https://go.microsoft.com/fwlink/?linkid=392040
ModuleBase : C:\Program Files (x86)\WindowsPowerShell\Modules\PackageManagement\1.0.0.1
PrivateData : {PSData}
ExperimentalFeatures : {}
Tags : {PackageManagement}
ProjectUri : https://oneget.org/
IconUri :
LicenseUri :
ReleaseNotes :
RepositorySourceLocation :
Version : 1.0.0.1
ModuleType : Binary
Author : Microsoft Corporation
AccessMode : ReadWrite
ClrVersion : 4.0
CompanyName : Microsoft Corporation
Copyright : (C) Microsoft Corporation. All rights reserved.
DotNetFrameworkVersion :
ExportedFunctions : {}
Prefix :
ExportedCmdlets : {[Find-Package, Find-Package], [Get-Package, Get-Package], [Get-PackageProvider, Get-PackageProvider], [Get-PackageSource, Get-PackageSource]…}
ExportedCommands : {[Find-Package, Find-Package], [Get-Package, Get-Package], [Get-PackageProvider, Get-PackageProvider], [Get-PackageSource, Get-PackageSource]…}
FileList : {}
CompatiblePSEditions : {Desktop}
ModuleList : {}
NestedModules : {}
PowerShellHostName :
PowerShellHostVersion :
PowerShellVersion : 5.1
ProcessorArchitecture : None
Scripts : {}
RequiredAssemblies : {}
RequiredModules : {}
RootModule : Microsoft.PowerShell.PackageManagement.dll
ExportedVariables : {}
ExportedAliases : {}
ExportedDscResources : {}
SessionState :
OnRemove :
ExportedFormatFiles : {C:\Program Files (x86)\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\PackageManagement.format.ps1xml}
ExportedTypeFiles : {}
### VSCode version: 1.42.1 c47d83b293181d9be64f27ff093689e8e7aed054 x64
### VSCode extensions:
alefragnani.Bookmarks@11.0.0
eamodio.gitlens@10.2.1
Ionide.Ionide-FAKE@1.2.3
Ionide.Ionide-fsharp@4.6.4
Ionide.Ionide-Paket@2.0.0
mohsen1.prettify-json@0.0.3
ms-dotnettools.csharp@1.21.13
ms-vscode.powershell@2020.3.0
### PSES version: 2.0.0.0
### PowerShell version:
Name Value
---- -----
PSVersion 7.0.0
PSEdition Core
GitCommitId 7.0.0
OS Microsoft Windows 10.0.18363
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
C:\Users\<REMOVED>\Documents\PowerShell\Modules
C:\Program Files\PowerShell\Modules
c:\program files\powershell\7\Modules
C:\Program Files (x86)\WindowsPowerShell\Modules
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
C:\Data\PowerShell\Modules
c:\Users\<REMOVED>\.vscode\extensions\ms-vscode.powershell-2020.3.0\modules
C:\Data\PowerShell\Modules
@mrboring
C:\Program Files (x86)\WindowsPowerShell\Modules
Huh, that's weird. What's [Environment]::Is64BitProcess
? All of your paths are x64 except this one, might be nothing, but is strange.
@SeeminglyScience
[DBG]:> [Environment]::Is64BitProcess
True
Also:
[DBG]:> Get-ComputerCPU
ComputerName : <REMOVED>
Name : Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
DeviceID : CPU0
Caption : Intel64 Family 6 Model 158 Stepping 9
CurrentClockSpeed : 2904
MaxClockSpeed : 2904
ProcessorID : <REMOVED>
ThreadCount : 8
Architecture : 9
Status : OK
LoadPercentage : 10
Manufacturer : GenuineIntel
NumberOfCores : 4
NumberOfEnabledCore : 4
NumberOfLogicalProcessors : 8
[DBG]:> Get-ComputerOperatingSystem
ComputerName : <REMOVED>
Caption : Microsoft Windows 10 Pro
Manufacturer : Microsoft Corporation
OSArchitecture : 64-bit
OSLanguage : 1033
OSProductSuite : 256
InstallDate : 01/06/2019 20:11:17
LastBootUpTime : 06/03/2020 10:42:14
LocalDateTime : 10/03/2020 12:15:11
Version : 10.0.18363
SerialNumber : <REMOVED>
BootDevice : \Device\HarddiskVolume2
WindowsDirectory : C:\WINDOWS
CountryCode : 44
Sort of a shot in the dark, but maybe worth changing that entry in your $env:PSModulePath
to C:\Program Files\WindowsPowerShell\Modules
.
@SeeminglyScience Thanks for the suggestion. I'll give that a go and let you know how I get on.
That said, the slow down in auto-complete has only started recently. The PSModulePath
has not changed for some time.
@SeeminglyScience I've done the change you suggested and it doesn't make a difference.
I've had a bit more time to do testing and find that the issue increases the longer you work on a file. I had a test file with 35 line and by the last line there was a small delay (upt to three seconds, not there on earlier lines). If I switch to another file, do some editing, switch back to the original file, the performance is OK.
In my (limited) testing I've not experienced long delays. Maybe that's related to me updating VS Code to 1.43.0, or maybe I've not done enough testing. Previously, after waiting more than ten seconds, I would simply type the required text.
The delay I had in testing was relating to Measure-Object
. I typed measure-
, auto-complete did not kick in, so I did Ctrl+Space
. It took about three seconds for the list of suggestions to appear. I created a new document and did the same. The list of suggestions appeared instantly after I typed measure-
. I've experienced this issue with other commands, so it's not related to Measure-Object
. I just wanted to give an example.
I'm trying to create a reproducible test that I can post here. Not easy on this type of issue.
I've just experienced auto-complete not working. After about 30 seconds I gave up and typed the text. At the same time, I noticed that document formatting stopped working.
@mrboring try this:
Import-Module PackageManagement -PassThru
Check which version you're getting when you do that
@SeeminglyScience
> Import-Module PackageManagement -PassThru
ModuleType Version PreRelease Name ExportedCommands
---------- ------- ---------- ---- ----------------
Script 1.4.6 PackageManagement {Find-Package, Find-PackageProvider, Get-…
I notice that, since changing the PSModulePath
as you suggested above, a new version (1.3.1) of the PackageManagement
module has appeared:
> Get-Module PackageManagement -list
Directory: C:\program files\powershell\7\Modules
ModuleType Version PreRelease Name PSEdition ExportedCommands
---------- ------- ---------- ---- --------- ----------------
Script 1.4.6 PackageManagement Desk {Find-Package, Get-Package, Get…
Directory: C:\Program Files\WindowsPowerShell\Modules
ModuleType Version PreRelease Name PSEdition ExportedCommands
---------- ------- ---------- ---- --------- ----------------
Script 1.3.1 PackageManagement Desk {Find-Package, Get-Package, Get…
Binary 1.0.0.1 PackageManagement Desk {Find-Package, Get-Package, Get…
I've got the following in my settings:
"powershell.developer.editorServicesLogLevel": "Diagnostic",
"powershell editor services.trace.server": "Verbose",
I'll leave the extended logging on until I come across the issue. Then I'll post the logs here.
@mrboring we looked through your logs and are working on a fix that will hopefully be available in our next preview release, thanks!
Can you all give the PowerShell Preview extension a try? We just did a release of it.
Don't forget to disable the regular PowerShell extension for VS Code when you enable the PowerShell Preview extension for VS Code
@TylerLeonhardt I tried the new preview extension over the weekend.
Many auto-complete slowdowns in a forty minute period. Note that is a gap in the logs between 10:54:25 and 11:02:51. I lost the logging for this period. I'm wondering if it's possible that some of the slowdowns were caused by having extended logging enabled:
"powershell.developer.editorServicesLogLevel": "Diagnostic",
"powershell editor services.trace.server": "Verbose",
I did have auto-complete stop working on Saturday 14 March. I do not have the logs for PowerShell Editor Services because I did not realise they rotated. By the time I looked at them the logging had gone.
### VSCode version: 1.43.0 78a4c91400152c0f27ba4d363eb56d2835f9903a x64
### VSCode extensions:
alefragnani.Bookmarks@11.0.0
eamodio.gitlens@10.2.1
mohsen1.prettify-json@0.0.3
ms-dotnettools.csharp@1.21.14
ms-vscode.powershell-preview@2020.3.0
### PSES version: 2.1.0.0
### PowerShell version:
Name Value
---- -----
PSVersion 7.0.0
PSEdition Core
GitCommitId 7.0.0
OS Microsoft Windows 10.0.18363
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
I have just tried latest preview extension and auto-complete still has slowness issues in most of my large code-base. It does seem to have improved though from the release version in that it's actually usable now. I had no option before but to roll back to the older release.
When I use the older extension it works fine. I am using powershell 7 or powershell 5.1 64 bit as the integrated runner but it makes no difference.
When I autocomplete on a parameter name that has previously been typed and is correct, a pwsh process hits 100% of a core for at least 8 - 9 seconds before showing a complete. Since the update, I've noticed the complete appears to be giving me command names if I Ctrl-space on a command, but parameter names are still very slow, even on repeated invocations.
I can't share code unfortunately, just my observations. I do have the same two modules installed as the poster higher up, though both are loaded from 64 bit module paths.
This issue has regressed for me with the latest preview release 2020.3.1. auto-complete doesn't work at all anymore. Reverting the extension to 2020.3.0 has it working again.
Probably best to track in #2590 which i've just found.
@TylerLeonhardt I've done a brief test with v2020.3.2-preview
. In this test intellisense was back to full speed! However, I would not be able to use this version full-time due to the dependency on Pester v5-beta. The ability to run single tests is excellent. Unfortunately it's not yet stable enough, and I'm getting tests which fail, that don't fail with Pester 4.10.1. Also, what looks like debug output. I'll create an issue in the Pester repository.
I'll try to do a longer test. After which I'ill need to revert to v2020.3.0
with it's slow intellisense, but working Pester (I unit test most code). Is there a (simple) way to use Pester 4.10.1 with v2020.3.2-preview
?
@mrboring
The Pester behavior is configurable:
"powershell.pester.enableLegacyCodeLens": true
If youre having trouble with Pester after that setting can you open a new issue?
@TylerLeonhardt I've created a new issue: [Preview-2020.3.2] Enable Legacy Code Lens not working
Also, it looks like I will be able use Tried on another project and it wouldn't run the Pester tests. It just gave the warning:2020.3.2
and just ignore the warning. Won't know until I give it a go.
Importing Pester module...
WARNING: Failed to import Pester version 5.0.0. You must install Pester module to run or
debug Pester tests.
WARNING: You can install Pester by executing: Install-Module Pester -MinimumVersion 5.0.0
-Scope CurrentUser -Force
UPDATE: The tests will run if I manually import Pester (4.10.1) first.
@TylerLeonhardt I've done a longer test with v2020.3.2
and can confirm that auto-complete performance is OK. However, it does stop working completely after some time (less than 30 minutes of coding in a project with ten small files). This was the originally reported issue @rkeithhill. It happened three times in testing today. Here are the logs for two of them:
Auto-complete stops working logs.zip
### VSCode version: 1.43.2 0ba0ca52957102ca3527cf479571617f0de6ed50 x64
### VSCode extensions:
alefragnani.Bookmarks@11.0.0
eamodio.gitlens@10.2.1
mohsen1.prettify-json@0.0.3
ms-dotnettools.csharp@1.21.16
ms-vscode.powershell-preview@2020.3.2
### PSES version: 2.1.0.0
### PowerShell version:
Name Value
---- -----
PSVersion 7.0.0
PSEdition Core
GitCommitId 7.0.0
OS Microsoft Windows 10.0.18363
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
I have a PR out to improve performance even more: https://github.com/PowerShell/PowerShellEditorServices/pull/1251
If you would like to give it a go, I'd love the feedback.
Download this zip: psvsix.zip
Extract it and run:
code --install-extension ./path/to/PowerShell-insiders.vsix
Make sure the regular PowerShell (stable) extension is disabled.
Restart VS Code.
To verify you've done it correctly, your version number in the extension pane for PowerShell Preview
should be: 2020.4.0-CI.49654
.
NOTE: This is an unsigned build and isn't supported. If you can only run signed things, don't bother trying this.
@TylerLeonhardt I've spend about 90 minutes typing functions (for testing I just duplicated existing functions into a dummy project) and auto-complete has worked perfectly so far. Good performance, with no crashes.
Nice! At the very least it is an improvement. I'll try to push a PowerShell Preview release today or tomorrow with a Stable release next week.
I was too busy with urgent work yesterday to try this out, but I've installed it this morning and will see how it goes. Ironically if it works it would have saved me plenty of time with restarts yesterday and today I don't have the same need to do any mad scripting (yet).
This version is significantly better than before and have not needed to restart in the last 60+ minutes, which was unheard of with the current preview. I've been reworking the script I did yesterday which it would freeze on pretty regularly so things have definitely improved.
Awesome - this will be live in......... about 10 or so minutes as the PowerShell Preview extension and then if it goes well, Stable will follow next week.
I will close this as we close issues when the fix is merged in and this has been merged in.
System Details
System Details Output
Issue Description
Auto-complete was working for about 5 minutes into editing a small script (220 lines) but now it has wedged.
Expected Behaviour
Auto-complete should not ever stop working - in an ideal world. :-)
Actual Behaviour
I get the dreaded "Loading..." message for at least a minute before I give up:
VSCodePSAutoCompleteWedge.zip 1583432852-d0e516fc-13f8-444b-877f-cecf115455871583432271941.zip
Attached Logs
Follow the instructions in the troubleshooting docs about capturing and sending logs.
1583432852-d0e516fc-13f8-444b-877f-cecf115455871583432271941.zip