Registry Performance Test (Compact 7)
3/12/2014
The Registry Performance Test analyzes the performance of the system when performing common registry operations such as creating registry keys, setting registry values, opening registry keys, and deleting registry keys. The test captures information about CPU utilization and memory data, as well as the time it takes to complete each operation.
The test generates raw benchmark data into an XML log file in the default release directory. The log file name is in the following format: "PERF_REGEX.xml".
You may want to run this test to determine whether you must enable the Flush-On-Close registry setting on your device. This registry setting increases reliability but is a tradeoff for performance. By knowing the time it takes to complete each registry operation, the Registry Performance Test can help you decide if this setting is a good choice for your system.
Test Prerequisites
Your device must meet the following requirements before you run this test.
There are no hardware requirements for the Registry Performance Test.
The following table shows the software requirements for the Registry Performance Test.
Requirement | Description |
---|---|
Tux.exe |
Test harness, required for executing the test. |
Kato.dll |
Logging engine, required for logging test data. |
PerfScenario.dll |
Performance logging engine, required for capturing the benchmark data. |
CePerf.dll |
Performance marking API and data collection engine. |
Perf_regEx.dll |
Test library. |
Note: There must be at least 5 megabytes (MB) of free space in the root directory of the target device. If there is not sufficient space in the root directory of the target device, the test cannot run properly.
Subtests
The following table lists the subtests included in this test.
SubTest ID | Description |
---|---|
1001 |
Creates and deletes registry keys (one key, multiple keys) and measures the time needed to complete each operation such as RegCreateKeyEx, RegOpenKeyEx, RegCloseKey, and RegDeleteKey. This test measures the time needed based on keys created in HKEY_LOCAL_MACHINE and HKEY_CURRENT_USER. |
1002 |
Sets short and long registry value names and measures the time needed to complete each operation such as RegSetValueEx, RegQueryValueEx, and RegDeleteValue. This test measures the time needed based on keys created in HKEY_LOCAL_MACHINE and HKEY_CURRENT_USER. |
1003 |
Opens registry keys that are paths, and registry keys that are deep trees (16 levels deep). Measures the time needed to complete each operation such as RegOpenKeyEx. This test measures the time needed based on keys created in HKEY_LOCAL_MACHINE and HKEY_CURRENT_USER. |
1004 |
Creates a tree that is five levels deep. Each key in the tree will have five subkeys and five values in the key. Leaf keys will only have five values and no subkeys. Measures the time needed to complete on each operation (RegDeleteKey). This test measures the time needed on keys created in HKEY_LOCAL_MACHINE and HKEY_CURRENT_USER. |
1005 |
Measures the time needed to complete "RegFlushKey" operation. This test measures the time needed on keys created in HKEY_LOCAL_MACHINE and HKEY_CURRENT_USER. |
1006 |
Tests performance of "RegEnumKeyEx" and "RegEnumValue" with 5, 10, 50 and 100 keys. |
Setting Up the Test
The device must have an active registry system.
Running the Test
Command-Line Parameters for the Registry Performance Test
The following table shows the optional command-line parameters for the Registry Performance Test.
Command-line parameter | Description |
---|---|
/interval time |
Specifies the interval (in milliseconds) between each CPU/memory snapshot. The default value is 100 ms. |
/calibration time |
Specifies the duration (in milliseconds) of the CPU calibration. The default is 100 ms. |
Verifying the Test
When the test completes running, verify that "PASS" appears in the test log for all subtests.
In addition, the resulting PERF_REGEX.xml log file must be checked to ensure that the performance meets the desired performance bar. The times reported in the log are in milliseconds.
Troubleshooting the Test
* If the test fails to run, ensure that you have at least 5 MB of free space in the root directory of your device.
* Ensure that the Device Under Test has been set up with a RAM or hive-based registry system.
For additional platform specific issues, consult the CTK articles on the TechNet wiki.