Я использую кодировщик HM-16.15 в режиме RELEASE в Visual Studio 2013. Кодировщик HM-16.15 — это очень большая программа на C ++ (200 тыс. Строк кода). У меня есть два времени (T1 и T2). Общее время, затраченное программой T = T1 + T2.
когда я собираю и отлаживаю программу в 64-битном режиме и 32-битном режиме отдельно. Время в 64-битном режиме по сравнению с 32-битным выглядит следующим образом
Насколько мне известно, T1 (64 бита) должен быть больше или равен T1 (32 бита) х 0,5. Но как это происходит для T1?
x86_64 (64-разрядная) платформа намного более чем в два раза больше ширины x86 (32-бит).
Помимо более широких регистров (64-битных вместо 32-битных), x86_64 имеет:
Таким образом, нет ничего необычного в том, чтобы увидеть T1 (64 бит) < T1 (32 бита) х 0,5, но он также может легко пойти другим путем. В общем, трудно предсказать, каким образом будет развиваться это отношение, без фактического тестирования и профилирования вашего кода.
Других решений пока нет …