LatencyMon 是一款專業的音頻檢測軟體，可檢測出電腦上各個驅動的狀態，特別是聲卡驅動的延遲情況，LatencyMon 檢測出電腦音頻延遲、點擊和持久性噪點的原因，了解聲卡驅動是否適配電腦。LatencyMon 還提供了ISR監視器、DPC監視器和pagefault顯示器的功能，播放音樂和玩遊戲的時候，如聲音播放出現問題的話，LatencyMon可檢測問題原因出自何處，雖不能提供解決方案，卻可以掃描出所有的音頻問題。
The audio latency problem
Windows is not a real-time operating system. All requests to the operating system are delivered on a best effort basis. There are no guarantees whatsoever that requests are delivered within a certain time frame, which are the characteristics of a real-time operating system. That is not a problem for most devices and tasks but this is bad news for audio applications (which are considered soft real-time) because they need to deliver data to the subsystem and the hardware in buffers several times per second. If one or more buffers miss their deadlines and are not delivered in time it has audible consequences which are recognized as dropouts, clicks and pops.
About DPCs and ISRs
The Windows thread dispatcher (also known as scheduler) which is part of the kernel executes threads based on a priority scheme. Threads with higher priority will be given a longer execution time (also known as quantum or time slice) than threads with a lower priority. However the kernel also knows other types of units of execution known as interrupt service routines (ISRs). Devices connected to the system may interrupt on a connected CPU and cause their interrupt service routines to execute. An interrupt can occur on the same processor that an audio program is running on. Any thread that was running on the processor on which an interrupt occurred will be temporarily halted regardless of its priority. The interrupt service routine (ISR) is executed and may schedule a DPC (Deferred Procedure Call) to offload an amount of work. The DPC will most likely run immediately on the same processor which means the audio application will halt until both the ISR and the DPC routines have finished execution. That is because ISRs and DPCs run at elevated IRQL which means they cannot become preempted by the thread dispatcher (scheduler). Therefore to guarantee responsiveness of the system, ISR and DPC routines should execute as fast as possible. Guidelines say that they should not spend more than 100 µs of execution time however this is often not reached due to hardware factors beyond the control of the driver developer. If execution time gets too high, the audio program may be unable to deliver audio buffers to the hardware in a timely manner.
About hard pagefaults
Windows uses a concept of virtual memory which relies on the page translation system provided by the CPU. Whenever a memory address is requested which is not available in physical memory (not resident), an INT 14 will occur. The OS provided INT 14 handler will decide how to proceed next. If the page in which the address resides is known to Windows but not resident, Windows will read in the required page from the page file. That is known as a hard pagefault and can take a lot of time to complete. If the page can be read in from the hard disk cache, the price will be limited. However if it needs to physically read in the data from disk sectors this takes a lot of time. If an audio program hits a hard pagefault while it is playing it will almost certainly have audible consequences recognized as dropouts, clicks or pops.
Hard pagefaults are a very common but often overlooked cause of audio dropouts, clicks and pops. They especially occur often with audio software that uses a lot of memory such as samplers. Solutions for avoiding hard pagefaults are increasing the working set of the audio application, increasing the amount of RAM or disabling the pagefile altogether. Note that if you disable the pagefile, the system may run "out of memory" because it does not have the pagefile available to swap memory to. Also the system will no longer create crash dump files in case of a system crash.
Starting and stopping LatencyMon
When LatencyMon starts, it will display a message to click the Start button to start analysis. Click the start button. The page under the Main tab will give an overview of the most important information. A detailed report is available under the Stats tab. When you are done click the Stop button.
The report view displays a conclusion of the suitability of your system for playing real-time audio at the top. If the execution times of all DPC and ISR routines stay below 2000 µs (microseconds), your system is considered suitable for handling real-time audio without dropouts. If some routines have execution times between 2000 µs and 4000 µs, your system is considered doubtful. If ISR or DPC routines are detected to execute for longer than 4000 µs, a system is considered unsuitable for handling real-time audio. Note that these numbers are just chosen arbitrarily. For optimal midi to audio latencies, buffer sizes of a sound card and driver should be set to very low values then only very low execution times of DPCs and ISRs become acceptable.
The report view will display:
- highest measured DPC execution time
- the driver that was executing the longest executing DPC routine
- frequency of DPC executions (divided in execution time categories)
- highest measured ISR execution time
- the driver that was executing the longest executing ISR routine
- frequency of ISR executions (divided in execution time categories)
- highest measured hard pagefault resolution time
- the process in which the hard pagefault occurred that took the most time to resolve
- frequency of hard pagefault hits
On a multi processor system, LatencyMon offers the option to exclude one or more CPUs from being measured by selecting them from the options menu. For a complete analysis you should select all available CPUs. This feature may be useful to check which CPUs are connected to interrupts and verify how ISRs and DPCs are distributed among available processors. Also it may allow you exclude certain processes to which you have assigned a certain affinity.
High DPC or ISR routine execution times: how to proceed
If LatencyMon reports the DPC and ISR execution times to be too high, you should take a look at the responsible drivers. It may be that these drivers belong to a device that is non-critical for the operation of your computer. If for example tcpip.sys or ndis.sys is reported as the culprit, chances are the problems are caused by your wireless network adapter, if you have one. You could consider disabling the WiFi adapter and receive internet via an Ethernet cable. You can disable devices by right-clicking on My Computer and selecting Device Manager, right-clicking a device and selecting disable. You should run LatencyMon again to check if the situation has improved, there might still be another device or driver causing audio latencies.
Note that if high latencies have been reported to be caused by drivers which are critical for the operation of your computer such as motherboard drivers, there may be nothing you can do to get your computer suitable for processing real time audio.
Hard pagefaults: how to proceed the investigation
We believe that hard pagefaults are the most common cause of audio dropouts. The effect of a program hitting hard pagefaults while playing audio is usually dramatic. One problem with pagefaults is that they often come in groups so that a row of pagefault causes interruption of the audio stream. Another problem with them is that unlike ISRs and DPCs, putting in more processors into a system will not help you to avoid them. Page faults need to get resolved immediately and any thread that hits them is suspended until the pagefault is resolved. Hitting a hard pagefault on a page file or memory mapped file that is backed on a drive that is spun down because of a power feature may interrupt a program for several seconds until it can proceed.
If hard pagefaults are reported but no high DPC and ISR execution times you should investigate if these are the cause of audio dropouts. The difficulty with pagefaults is that they are common to occur so it's hard to find out if they are the cause of audio dropouts and stutter. In order to find out if pagefaults are the cultprit you need to know that the pagefault occured in the process responsible for producing audio and also while it was producing audio.
To verify that the hard pagefault occured in your audio program, take the following steps:
- Stop the monitor by clicking the stop button
- Click the Processes tab
- Now click on the Number of pagefaults column so the view gets sorted
- Now look for the process name of the audio application that was running and see if it was hit
Hard pagefaults should only be considered a problem if you can hear they are actually interrupting the audio stream. It is common for any program which uses a lot of memory to hit hard pagefaults. By observing the Processes view while audio is playing you can find out if hard pagefaults are being hit while audio is playing. If you found out that pagefaults are the cause of audio dropouts you should read the next section on how to avoid them.
How to avoid hard pagefaults
If you have concluded that hard pagefaults are the cause of audio dropouts, you can do any of the following to resolve the problems:
- Close down unnecessary applications which consume a lot of RAM
- Close down unnecessary service applications which consume a lot of RAM (the Search Indexer service is notorious)
- Increase the amount of RAM in your system
- Increase the working set of the audio application, only an option if you are the author of the software.
- Make sure audio data is paged-in (resident). Pages of memory are swapped out based on their use counts. If you use Windows for live playing, do a silent run of your software synthesizer. After changing patch on a sampler, touch all keys so that all memory it uses is paged-in to avoid embarrasing scenes.
- Disable the pagefile altogether. You can disable the pagefile by right-clicking My Computer and selecting Advanced System Settings->Advanced->Performance Settings->Advanced->Virtual memory->Change. Note that if you have no pagefile, the system can run out of memory if not enough memory is available. Also the system will no longer create crash dump files in case of a system crash.
Other causes of audio dropouts, pops and clicks
This section summarizes a list of other possible causes of audio dropouts, clicks and pops. If there are no high DPC or ISR execution times reported and hard pagefaults are not the cause of the problems you should consider these.
Audio buffer sizes
To reduce midi to audio latencies (that is the time between a key press on a MIDI keyboard and the occurrence of the actual sound), the audio buffer size of the audio driver should be as low as possible. But it must be supportable by the system. The acceptable limit of 2000µs for DPC and ISR execution times has been arbitrarily chosen. The lower your audio buffer size, the lower the tolerance for long execution times of DPC and ISR routines and page fault resolution. In order to retain a system that does not drop out you may need to increase your audio buffer size. So it might be that your system is not suitable for low midi to audio latency but you might still be able to find an acceptable balance that works.
If a software synthesizer or effect requires too much execution time to compute its audio buffers in time it will cause stutter, clicks or pops. This can for example easily happen when playing too many voices or too many virtual instruments at the same time in a software synthesizer.
If there are simply too many threads competing for CPU time an audio program may not get enough attention from the scheduler to process its audio buffers. Threads are selected based on a priority scheme but if there are multiple programs running with threads running at high priority, there may just be not enough CPU time available for the audio software to fill its buffers in time. Threads responsible for producing audio normally run at highest or real-time priority. Competing threads with a lower priority may still get scheduled because the balance set manager which is part of the operating system will boost threads with a lower priority to avoid thread starvation. Closing down unnecessary programs, services and getting more CPUs will help you.
Bugs in audio software
Bugs in audio software can of course create all sorts of artifacts including pops and clicks. If problems are limited to one particular audio program or plugin, chances are it's the program's fault. It also deserves mentioning that exception handling requires a lot of processing power and causes interrupts to occur on the processor on which it's running. A very common example is an audio plugin program which does not mask off floating point exceptions so that each division by zero or other forseeable problem causes an interrupt to occur.
Bugs in hardware or audio drivers
Bugs in hardware and audio drivers may also be responsible for causing stutter, pops and clicks.
All execution times are calculated based on a fixed CPU clock speed which is listed. For most accurate results you should disable variable clock speed settings in your BIOS setup such as Intel TurboBoost, SpeedStep and AMD Cool N Quiet.
Because of the nature of the software, it does not make sense to run this program inside a virtual machine if you wish to obtain useful measuring results.
Supported Operating Systems
LatencyMon supports the following operating systems:
- Windows Server 2016
- Windows 10 32-bit editions
- Windows 10 x64 editions
- Windows 8.1 32-bit editions
- Windows 8.1 x64 editions
- Windows 8 32-bit editions
- Windows 8 x64 editions
- Windows 2012 Server 32-bit editions
- Windows 2012 Server x64 editions
- Windows 7 32-bit editions
- Windows 7 x64 editions
NOTE: Since v 6.00 Windows Vista and Windows 2008 Server are no longer supported. You can still download v5 which also supports these older systems
LatencyMon Professional offers the following additional features:
- In-Depth Latency Test, a tool that allows you to measure SMIs, IPIs and CPU stalls
- Several options to customize the visual appearance of the user interface
- The option to scale the user interface to another size
- A license that allows you to use the software in a commercial environment
Registrar Registry Manager
Registrar Registry Manager is an advanced and complete suite of tools that allows you to safely maintain your local registry as well as the registries on the systems of your network. Since many years, Registrar Registry Manager has been the expert's choice in registry management.
This software offers solutions for backing up and restoring registries, fast background search and replace, a bookmark editor with categories which supports key coloring and adding descriptions to registry keys and values, detailed property pages, tools for easy navigation. The program offers multi-level undo so all registry changes can be individually undone.
The software offers a registry defragmenter as well as a registry monitor which logs registry access by the system and other applications in detail. It provides security editors which allow you to set access permissions on your registry keys. An advanced registry compare tool allows you to check the differences between two keys in detail. Registry files can be edited in a separate registry window.
WhySoSlow does a serious effort at analyzing your system to find out why it's running slow.
Instead of focusing on a limited set of possible factors that may slow down your computer, this software takes a holistic approach to analyzing the responsiveness and performance of a system. It's intended as a one-stop solution for checking all perfomance health factors of a system.
The software monitors and analyzes your CPU temperature and clock speed, running processes, memory usage, page file usage, disk fragmentation, power settings, kernel and application responsiveness, behavior of BIOS and drivers and several other factors that may have influence on the performance and responsiveness of your system.
Upon request, the software will perform a thorough analysis and provide you with a detailed report that includes suggestions on how to improve your systems performance and responsivenss.
WhoCrashed reveals the drivers responsible for crashing your computer
Whenever a computer running Windows suddenly reboots without displaying any notice or blue or black screen of death, the first thing that is often thought about is a hardware failure. In reality, crashes are often caused by malfunctioning device drivers and kernel modules. In case of a kernel error, computers running Windows do not show a blue or black screen unless they are configured to do so. Instead these systems suddenly reboot without any notice.
WhoCrashed shows the drivers that have been crashing your computer with a single click. In most cases it can pinpoint the offending drivers that have been causing misery on your computer system in the past. It does post-mortem crashdump analysis and presents all gathered information in a comprehensible way. In case your system has been crashing because of a hardware failure, WhoCrashed will provide you with guidance to trace the root cause of the problem.
Normally, debugging skills and a set of debugging tools are required to do post-mortem crash dump analysis. Using WhoCrashed you do not need any debugging skills to be able to find out what drivers are causing trouble to your computer.
MultiMon is an advanced multifunctional system monitoring tool for Windows which displays detailed output of a wide range of activities in real-time.
The system monitor displays process and thread creation as well as binary image loading.
The file system monitor displays activity from the perspective of the file system. The registry monitor shows registry activity in real time.
MultiMon supports clipboard, keyboard and task activity monitoring as well.
The program allows you to export output to text files and sort output views on columns. Non-destructive include and exclude filters allow you to search monitor output for matching data. An optional combined view option allows you to display all activity in one single view.
All activities are recorded with lots of details, including a high-precision time stamp, process name and ID, thread ID, CPU ID, object handle, and window title.
SanityCheck is an advanced rootkit and malware detection tool for Windows which thoroughly scans the system for threats and irregularities that may indicate malware or rootkit behavior. By making use of special deep inventory techniques, this program detects hidden and spoofed processes, hidden threads, hidden drivers and a large number of hooks and hacks which are typically the work of rootkits and malware. It offers a comprehensible report which gives a detailed explanation of any irregularities found and offers suggestions on how to solve or further investigate any situation.
Undeluxe is an advanced file protection and recovery utility for Windows. This program could be described as an undelete utility. It works similar to the standard recycle bin which is part of Windows Explorer but will catch files deleted by any application. Deleted files will be protected in a separate directory of your choice. Files which have been accidentially deleted can be recovered with just a single click.
It offers a rich set of features which allow you to fine tune the bevavior of deleted files. File inclusion and exclusion filters and advanced maintenance settings will even allow you to use this program as a backup utility. Undeluxe will also protect files deleted on remote network drives.