NT Worstation 4 performance tips

Posted on 1998-01-14
Last Modified: 2013-12-28
I have a NT Wokstation 4, service-pack 3, pentium 200 MMX, 64 Mb of RAM, 3.2gb of Disk.

I'm currently looking for REAL performance tips for my machine (those that require registry changes) that will boost the performance of the machine.

Depending upon the quality and number of tips I will grade the answer and even increase the number of points rewarded.

Question by:Jonny071797
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3

Accepted Solution

cer earned 200 total points
ID: 1789073
All the Tips I have:

You can increase NTFS performance if you disable 8.3 name creation.
(Some 16bit programs may have trouble finding Long File Names. Don't set this option if you wish to install Norton NT
Edit: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

Value:NtfsDisable8dot3NameCreation REG_DWORD
Default: 0
Range: 0 or 1

Set it to 1 to disable 8.3 name creation. This won't take effect until the next boot.
Creating seperate processes for the DeskTop/TaskBar and Explorer.

By default, the shell creates 1 process with the Taskbar and Desktop as one thread and each instance of explorer as an
additional thread. A failure in any thread will affect the entire process.
If you have at least 24 Meg of RAM and a fast Pentium, you can create a seperate process for the Desktop/Taskbar and 1
for each instance of explorer by editing the registry at:


and adding value DesktopProcess (REG_DWORD). Set it to 1 and reboot.
Finding that memory leak using Windows NT 4.0.

Much has been written about using Performance Monitor to detect and isolate memory leaks. Two KB articles on the
subject are Q130926 and Q150934.

While these standard protocols work, the hit and miss method of finding the leaking process can be very time consuming.
Here is an alternate method:

1. Start PMON.EXE from the Resource Kit.

2a.Monitor Paged and Non-Paged pool usage (last 2 items on the 2nd row).
       If these are increasing over time, you have a memory leak.
2b.Monitior the commit counters on the 2nd row.
       Increasing numbers over serval hours indicate a probable leak.
2c.Monitor the Commit Charge column.
       The process with the leak will have an increasing value.

3. To make it easier to monitor, copy the output to the clipboard and paste it into notepad.
    Do this about once an hour over the duration of your testing.
Increase network performance.

If you increase the number of buffers that the redirector reservers for network performance, it may increase your network
throughput. Each extra execution thread that you configure will take 1k of additional nonpaged pool memory, but only if your
applications actually use them. To configure additional buffers and threads, edit:


Modify or Add Value of type REG_DWORD for:

MaxCmds The range is 0 - 255 and the default is 15

MaxThreads Set it to the same value as MaxCmds

You may also want to increase the value of MaxCollectionCount. This REG_DWORD is the buffer for character-mode
named pipes writes. The default is 16 and the range is 0 - 65535.
Speed up file system activity.

If you have some extra RAM and an active file system, you can speed up file system activity by increasing the
IoPageLockLimit from the default 512K bytes to 4096K bytes or more. Edit:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management

IoPageLockLimit type REG_DWORD Default: 512K

This entry is the maximum number of bytes that can be locked for I/O operations. When the value is 0, the system
defaults to 512K. The largest value is based on the amount of memory in your system. I would limit this entry to:


Before making changes, get a baseline by using performance monitor for a representative period of time. Make your
changes in small increments and measure performance after each change.
A tweak for NTFS performance.

When Windows NT lists a directory (Explorer, DIR command, etc.) on an NTFS volume, it updates the LastAccess time stamp
on each directory it detects. If there are a very large number of directories, this could effect performance. A new registry entry
allows you to control this behavior. Edit:


Add Value name NtfsDisableLastAccessUpdate of type REG_DWORD. Set it to 1 to prevent the LastAccess time stamp from
being updated.
Do your DOS programs run slowly?

When you right click a DOS program (or .PIF) in Explorer and choose Properties, you get the NT 4.0 version of the PIF editor.

- If the application runs in a window and the video performance is slow, try full-screen mode on the Screen tab.

- Disabling the Compatible Timer Hardware feature in the _DEFAULT.PIF or the applications PIF on the Program tab /
Windows NT button should only be used if it is required to make the application run.

- If the application runs Windowed and pauses periodically, try disabling Idle Detection on the Misc tab.

- If the DOS application can be configured for printing, choose LPTx. Most DOS apps use Int17 when configured to print to LPTx
and print directly to the port.
It is possible that your Windows NT HAL (Hardware Abstraction Layer) does not recognize the amount of L2 cache (Secondary
RAM Cache) that you have installed. To force Windows NT to recognize it, edit:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management

The value name SecondLevelDataCache is a type REG_DWORD. A data value of 0 is the default which sets the L2 cache to
256K. If you have a different amount installed, set the value in decimal.

Example: If you have 512K cache, set the entry to 512 in decimal (Hexadecimal 200).

If you have lots on memory, set DisablePagingExecutive, a type REG_DWORD, to 1. This will allow drivers and the kernel
code to be kept in memory. The default is 0 which pages drivers and kernel code when needed.


Author Comment

ID: 1789074
Hi Cer,

I have one more quick question.
When I run a DOS 16-bit program, Windows NT starts the NTVDM process (which is the NT virtual driver manager I think. This is the 16-bit "emulator", which enables 16-bit application to run).
Usually it takes a few seconds to start this process then start my 16-bit program program.
Is there any way to speed it up (or even keep this process always in memory)????

PS: Thanks for the tips. I'll increase to 200 points.


Expert Comment

ID: 1789075
NTVDM is ..virtual device machine, but maybe I am wrong.
If you start a DOS-Box NTVDM is loaded. If you start a Win311 (16Bit) Program NTVDM and WOWEXEC (windows over windows, 16Bit Win emulator) is loaded.
For each DOS-Box one NTVDM is loaded, so there is not only one NTVDM which handles ALL 16Bit applications. Therefor you can not hold NTVDM in memory, its like having Word in memory without starting Word.
Only thing I can imagine is that you start a minimized DOS-Box in your autostart group, so you have one ready.
Or you can shedule (with AT command) a batch wich opens and close a DOS box every 15 minutes, this way you have NTVDM in your cache and NT do not need to load it from disk.
But I have no speed problems with starting a DOS application, maybe you need to look somewhere else for the bottleneck.
Use performance monitor (see above) to investigate which components are "slow".

Salesforce Made Easy to Use

On-screen guidance at the moment of need enables you & your employees to focus on the core, you can now boost your adoption rates swiftly and simply with one easy tool.


Author Comment

ID: 1789076
Adjusted points to 200

Expert Comment

ID: 1789077
I found a (printed) documentation which originally came from the MS-website. I could not find it again, but maybe you.

Technet Reference Desk
Optimazation and Tuning of Windows NT
old URL:


Author Comment

ID: 1789078

Expert Comment

ID: 1789079
Thanks, I wrote it down (this time).


Featured Post

Instantly Create Instructional Tutorials

Contextual Guidance at the moment of need helps your employees adopt to new software or processes instantly. Boost knowledge retention and employee engagement step-by-step with one easy solution.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article summaries thoughts and ideas from two years of sustained use. It provides good reasoning to make the jump to Windows 10.
The Windows functions GetTickCount and timeGetTime retrieve the number of milliseconds since the system was started. However, the value is stored in a DWORD, which means that it wraps around to zero every 49.7 days. This article shows how to solve t…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

630 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question