В других ответах упоминается очень много хороших вещей. Тем не менее, я все равно собираюсь скинуть свои два пенса (или цента - в зависимости от того, откуда вы!).
Предполагая, что это действительно 64-битный процесс, как вы сказали, вот несколько направлений исследования ...
Какое использование памяти вы проверяете? Использование Mem или размер VMem? Размер VMem - это тот, который действительно имеет значение, так как он относится как к выгружаемой, так и к невыгружаемой памяти. Если два числа далеко не в порядке, то использование памяти действительно является причиной замедления.
Каково реальное использование памяти на всем сервере, когда все начинает замедляться? Относится ли замедление к другим приложениям? Если это так, то у вас может быть проблема с памятью ядра, которая может быть связана с огромным объемом доступа к диску и низкоуровневым использованием ресурсов (например, создать 20000 мьютексов или загрузить несколько тысяч битовых карт с помощью кода, использующего Win32 HBitmaps). Вы можете получить некоторую информацию об этом в диспетчере задач (хотя версия Windows 2003 более информативна, чем версия 2008).
Когда вы говорите, что приложение становится значительно медленнее, как вы узнаете? Вы используете обширные словари или списки? Может ли быть так, что внутренние структуры данных становятся настолько большими, что усложняют работу, выполняемую любыми внутренними алгоритмами? Когда вы добираетесь до огромных чисел, некоторые алгоритмы могут начать замедляться на порядки.
Какова нагрузка на процессор приложения, когда оно работает на полную мощность? Это на самом деле так же, как когда происходит замедление? Если загрузка ЦП уменьшается по мере увеличения использования памяти, это означает, что для того, что он делает, требуется больше времени для загрузки ОС, а это, вероятно, создает слишком большую нагрузку на ОС. Если нет разницы в загрузке процессора, то я предполагаю, что внутренние структуры данных становятся настолько большими, что замедляют ваши алгоритмы.
Я бы, конечно, посмотрел на запуск Perfmon в приложении - начиная с некоторых .Net и собственных счетчиков памяти, попаданий и промахов кэша и длины очереди диска. Запускайте его на протяжении всего приложения от запуска до запуска, когда оно начинает работать как астматическая черепаха, и вы можете просто получить подсказку от этого.