Timeline is not working: issue solution for different Windows versions
If timeline is not working even for standalone processes, please follow this guide.
____________________________________________________________________________________
Possible cause:
The user who runs dotMemory isn't a member of the "Performance Monitor Users" group therefore he hasn't permissions to access performance counters.
To verify this:
1) Run dotMemory via "Run as administrator" mode.
2) Start profiling session. If the timeline appears in this case the reason why you can't see timeline without "Run as administrator" mode is an access permissions.
To resolve the issue:
1) Go to
'Start | Control Panel |Administrative tools | Computer Management'
Select 'Local Users and Groups | Groups'
2) Open "Performance Monitor Users" group properties.
3) Add the user to "Performance Monitor Users" group.
Members of this group can access performance counter data locally and remotely.
4) Sign out from user account and sign in to Windows again.
____________________________________________________________________________________
Possible cause:
Performance counters are disabled in Windows registry.
To verify this:
1) Run regedit.exe
2) Check key:
'HKEY_LOCAL_MACHINE | SYSTEM | CurrentControlSet | Services | PerfProc | Performance | Disable Perfomance Counters'
If key value is 1, performance counters are disabled.
To resolve the issue:
Change key value to 0.
____________________________________________________________________________________
Possible cause:
Performance counter symbols may not be installed properly.
To verify this:
You can check performance counters state via this simple application:
https://github.com/Ed-Pavlov/PerformanceCountersTest.git
Build it, run and check console output. If any error exists in output, some performance counters are not installed properly or missing at all.
If you are not able to run third-party application:
1) Go to
Windows XP/Windows Server 2003:
'Start | Control Panel |Administrative tools | Performance'
Select 'System Monitor'
Windows 7/Vista/Windows Server 2008/Windows 8/Windows Server 2012:
'Start | Control Panel |Administrative tools | Performance Monitor'
Select 'Monitoring Tools | Perfomance Monitor'
2) Right click on plot and select 'Add Counters'
3) Select
Windows XP/Windows Server 2003:
Performance object: '.NET CLR Memory'
Windows 7/Vista/Windows Server 2008/Windows 8/Windows Server 2012:
'.NET CLR Memory' and expand it.
4) Verify that there is no 'Process ID' counter listed. If it's so, the next steps could help you to resolve your timeline issue.
But if you have 'Process ID' counter in the list, the problem occurs for another reason and you should contact our support.
5) Close 'Perfomance' ('Perfomance Monitor') window.
To resolve the issue:
1) Run Command Line.
If you use OS version higher than Windows XP you should run Command Line in "Run as administrator" mode.
Windows XP/Windows Server 2003:
Win+R, type 'cmd', press Enter.
Windows 7/Vista/Windows Server 2008/Windows 8/Windows Server 2012:
'Start | ', type 'cmd', right click on 'cmd.exe', select 'Run as administrator'
2) At the command line, type "unlodctr .NetFramework", and press Enter.
3) Find 'corperfmonsymbols.ini' file in your 'C:\Windows\...' folders. You could use windows search for it.
For example, file path could be:
Windows XP/Windows Server 2003: 'C:\Windows\Microsoft.Net\Framework\v2.0.50727'
Windows 7/Vista/Windows Server 2008: 'C:\Windows\Microsoft.NET\Framework\v4.0.30319'
Windows 8/Windows Server 2012: 'C:\Windows\Inf\.NETFramework'
This file could be located at 'C:\Windows\Microsoft.Net\Framework64\...' folder if you have x64 OS version.
Also the path depends on the .NET Framework version installed on your computer.
After you had find 'corperfmonsymbols.ini' path, use the 'cd' command in Command Line to change to this folder, for example:
cd "C:\Windows\Microsoft.NET\Framework64\v4.0.30319", and press Enter.
4) At the command line, type 'lodctr corperfmonsymbols.ini', and press Enter.
All needed counters should be loaded now.
5) At the command line, type 'lodctr /E:.NETFramework', and press Enter (to enable counters status).
Check the counter status 'lodctr /Q:.NETFramework', it should return the following:
Performance Counter ID Queries [PERFLIB]:
Base Index: 0x00000737 (1847)
Last Counter Text ID: 0x0000271A (10010)
Last Help Text ID: 0x0000271B (10011)
[.NETFramework] Performance Counters (Enabled)
DLL Name: %systemroot%\system32\mscoree.dll
Open Procedure: OpenCtrs
Collect Procedure: CollectCtrs
Close Procedure: CloseCtrs
First Counter ID: 0x0000266C (9836)
Last Counter ID: 0x0000271A (10010)
First Help ID: 0x0000266D (9837)
Last Help ID: 0x0000271B (10011)
Please restart your computer after these steps.
Please sign in to leave a comment.
I tried all these commands, but for me the following worked well:
This will rebuild the performance counters.
Congrats for dotMemory, great product!
Andre.
HI. I am currently on a trial period and faced the missing counters issue.
The counters were not even appearing at the performance tool (Windows10 for my case).
What helped me was found at https://stackoverflow.com/questions/29074047/net-clr-performance-counters-missing
After running the
C:\Windows\INF\.NETFramework>lodctr corperfmonsymbols.ini
comand.
Best regards
Lissandro