1

Недавно я скачал стандартную версию пакета кодеков K-Lite. Выбор расширенного процесса установки дал мне возможность настроить и автоматически использовать 64-разрядную версию Windows Media Player вместо стандартной 32-разрядной.

В чем различия между 32-разрядной и 64-разрядной версиями проигрывателя Windows Media? Каковы плюсы и минусы воспроизведения файлов на каждом?

2 ответа2

2

С точки зрения производительности почти ничего, так как навсегда. 64-битные WMP основаны на 64-битных кодеках, которые теоретически могут выиграть от более сложного программного режима (работающего на ЦП), но большинство кодеков написаны с учетом аппаратного режима (с использованием гораздо более подходящего графического процессора).

С точки зрения совместимости практически нет. Возможно, что экзотический формат сделан с использованием только двоичных кодеков, которые доступны только в 32-битном или 64-битном формате, но такой формат будет очень нишевым.

С точки зрения безопасности, 64-битный медиаплеер с 64-битными кодеками может получить больше преимуществ от ASLR с их большим возможным адресом памяти (в 4096 раз больше, что может отличаться от практической и теоретической атаки). Такая атака переполнения была ключевой для Stagefright в Android, и было множество уязвимостей в WMP, полагающихся на переполнение буфера.

1

Различия практически такие же, как между 32-битной и 64-битной версиями любой другой программы. В случае с WMP вы, вероятно, заботитесь о следующем:

  • 32-разрядный имеет максимальное адресное пространство памяти пользовательского режима 2 ГБ, в то время как 64-разрядный имеет практически неограниченную максимальную память (2 ^ 63 байта, намного больше, чем физическая память любого существующего компьютера). На практике это не должно иметь большого значения - WMP достаточно умен, чтобы буферизовать частичное чтение файлов, вместо того, чтобы пытаться одновременно удерживать весь файл в своей памяти, так что в большинстве случаев не имеет значения, насколько велик открываемый файл - но теоретически на компьютере с большим количеством ОЗУ 64-битные процессы могут буферизовать больший объем файла, сокращая операции ввода-вывода (особенно если вы много ищите).
  • 64-разрядные процессы немного более безопасны, чем 32-разрядные, потому что рандомизация размещения адресного пространства (ASLR) может использовать больше энтропии, а также потому, что целочисленные переполнения в указателях намного легче, когда указатели имеют длину 32 бита, чем когда они 64-разрядные долго. Надеюсь, это не имеет значения, но иногда возникают ошибки безопасности, и в этом случае 64-битный процесс может быть немного более устойчивым.
  • Процесс может загружать только библиотеки (DLL), которые имеют ту же разрядность, что и сам процесс. То есть 32-разрядный процесс не может загружать 64-разрядные библиотеки DLL, и наоборот. Это означает, что если вы используете какие-либо библиотеки DLL (например, плагины), для которых у вас также нет 64-битной версии, вы не сможете использовать эти плагины (или любые другие).

На практике я бы не стал менять настройки по умолчанию. WMP по умолчанию по-прежнему 32-битный на Win10, и это, вероятно, хорошо.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .