память — странное замедление C ++ выделяет

Может кто-нибудь сказать, пожалуйста, почему могут произойти следующие вещи:

У меня 2 компьютера:

  1. мой рабочий комп
  2. сервер

Я поддерживаю программу на C ++ (MSVC 2005 c ++ скомпилирована), которая работает слишком медленно только на сервере,
но не на моем компе.

Я проводил измерения (GetThreadTimes и т. Д.)
и можно с уверенностью сказать, что узкое место — это выделение памяти
(Новый / таНос). И это происходит только на сервере!

Я могу утверждать, что это происходит из-за фрагментации памяти из-за
Первый раз серверный экземпляр программы работает нормально, время его запуска теряется
только после повторной загрузки данных в память (1-1,5 миллиона выделяет / освобождает).

Я не был бы так удивлен, если бы я видел такое же поведение из-за памяти
фрагментация на обоих компьютерах (мой комп и сервер)
но то, что я вижу, это:
1). на мое распределение ресурсов занимает ~ 5% времени (не точно, но что-то вроде этого)
2). на сервере эти ассигнования занимают ~ 75% времени

как это могло случиться? Что может замедлить выделение C ++ на сервере,
Между тем, это нормально для моей рабочей станции. Где может быть разница?
Возможно, это связано с функциями управления памятью на уровне ОС?
потому что менеджер уровня C ++ одинаков в обоих случаях.

Вот обе конфигурации:

1). Мой компьютер (где ассигнования занимают ~ 5%):

OS Name:                   Microsoft Windows 7 Enterprise
OS Version:                6.1.7600 N/A Build 7600
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Member Workstation
OS Build Type:             Multiprocessor Free
Registered Owner:          Windows User
Original Install Date:     16/09/2011, 19:37:43
System Boot Time:          05/04/2013, 11:58:11
System Model:              7304A58
System Type:               x64-based PC
Processor(s):              1 Processor(s) Installed.
[01]: Intel64 Family 6 Model 23 Stepping 10 GenuineIntel ~2642 Mhz
Windows Directory:         C:\Windows
System Directory:          C:\Windows\system32
Boot Device:               \Device\HarddiskVolume2
System Locale:             ru;Russian
Input Locale:              en-us;English (United States)
Total Physical Memory:     4,061 MB
Available Physical Memory: 872 MB
Virtual Memory: Max Size:  8,121 MB
Virtual Memory: Available: 4,579 MB
Virtual Memory: In Use:    3,542 MB
Page File Location(s):     C:\pagefile.sys

2). Сервер (где выделения занимают ~ 75%):

OS Name:                   Microsoft(R) Windows(R) Server 2003, Enterprise Edition
OS Version:                5.2.3790 Service Pack 2 Build 3790
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Member Server
OS Build Type:             Multiprocessor Free
Original Install Date:     11/12/2008, 01:22:57
System Up Time:            1 Days, 8 Hours, 35 Minutes, 52 Seconds
System Manufacturer:       HP
System Model:              ProLiant BL685c G5
System Type:               X86-based PC
Processor(s):              4 Processor(s) Installed.
[01]: x86 Family 16 Model 2 Stepping 3 AuthenticAMD ~2210 Mhz
[02]: x86 Family 16 Model 2 Stepping 3 AuthenticAMD ~2210 Mhz
[03]: x86 Family 16 Model 2 Stepping 3 AuthenticAMD ~2210 Mhz
[04]: x86 Family 16 Model 2 Stepping 3 AuthenticAMD ~2210 Mhz
Windows Directory:         C:\WINNT
System Directory:          C:\WINNT\system32
Boot Device:               \Device\HarddiskVolume1
Total Physical Memory:     65,534 MB
Available Physical Memory: 61,284 MB
Page File: Max Size:       97,696 MB
Page File: Available:      93,445 MB
Page File: In Use:         4,251 MB
Page File Location(s):     C:\pagefile.sys
D:\pagefile1\pagefile.sys
D:\pagefile2\pagefile.sys
D:\pagefile3\pagefile.sys
D:\pagefile4\pagefile.sys
D:\pagefile5\pagefile.sys
D:\pagefile6\pagefile.sys
D:\pagefile7\pagefile.sys

Будем благодарны за разъяснение этого вопроса.

9

Решение

Проблема может заключаться в том, что функции памяти используют только один мьютекс для блокировки памяти для выделения и освобождения.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]