Desempenho fraco do processador único de 32 bits Windows XP xompared SMP no VBA + Excel

2

Bem-vindo!

Em muitos computadores, tive um desempenho ruim de convidados de 32 bits em execução no host Linux de 64 bits (usei apenas a família Debian). Por fim, consegui coletar dados de benchmark.

Fiz o benchmark executando a macro VBA personalizada (que usamos em nossa empresa) que gera 284 páginas de documentos do Word completos com gráficos, tabelas e comentários do Excel Pie. A macro é executada como uma única tarefa (excluindo os serviços padrão) em um conjunto de sistemas Windows XP de 32 bits configurados de maneira idêntica. Eu medi o tempo (em segundo) necessário para realizar o teste.

O computador (por exemplo, meu notebook Asus P53E) suporta tanto as extensões VT-d quanto o Windows XP nativo. Ele tem processador de 2 núcleos, cada núcleo é hyperthreaded, portanto, no total, temos 4 unidades de execução quase independentes.

Eu uso o mais recente VirtualBox 4.2 e o VMWare Workstation 9.0 para Linux, instalados juntos no mesmo host (executando o Mint 13 Maya), mas nunca executado simultaneamente.

Os resultados (na coluna Tempo) não são menos precisos que ± 10%

Aqui estão os resultados (desculpe pelo formato, mas não consegui descobrir uma solução melhor para as tabelas no SO):

+---------------+-------------+------------------------------------------------------+---------+------------+----------------+------+
| Host software | # processor |                    Windows kernel                    | IO APIC | VT-x/AMD-V | 2D Video Accel | Time |
+---------------+-------------+------------------------------------------------------+---------+------------+----------------+------+
| VirtualBox    |           1 | Advanced Configuration and Power Interface (ACPI) PC |       0 |          1 |              0 | 1139 |
| VirtualBox    |           1 | Advanced Configuration and Power Interface (ACPI) PC |       0 |          1 |              1 | 1050 |
| VirtualBox    |           1 | Advanced Configuration and Power Interface (ACPI) PC |       0 |          0 |              1 | 1644 |
| VirtualBox    |           4 | ACPI Multiprocessor PC                               |       1 |          1 |              1 | 6809 |
| VMWare        |           1 | ACPI Uniprocessor PC                                 |         |          1 |              1 | 1175 |
| VMWare        |           4 | ACPI Multiprocessor PC                               |         |          1 |              1 | 3412 |
| Native        |           4 | ACPI Multiprocessor PC                               |         |            |                | 1693 |
| Native        |           1 | Advanced Configuration and Power Interface (ACPI) PC |         |            |                | 1170 |
+---------------+-------------+------------------------------------------------------+---------+------------+----------------+------+

Aqui estão as impressionantes conclusões:

  • Embora eu tenha lido no VirtualBox sobre desempenho abismal com guest de 32 bits em host de 64 bits, o VMWare também tem problemas em comparação com o nativo, sendo ainda duas vezes mais rápido (!) que o VBox.
  • Embora o VBA seja inerentemente de encadeamento único, os cálculos do Excel, que exigem muito mais da metade do tempo total de computação, supostamente não são. Então, seria de se esperar algum ganho de velocidade quando executado em 2+ cores ("+" para hyperthreading). O que vemos é uma perda de velocidade. E muito grande também.
  • Para o VirtualBox, a extensão VT-d não é grande coisa.
  • A menos que você tenha pelo menos 6 núcleos independentes que você usará no ambiente guest, não há vantagem em termos de desempenho no Windows para multiprocessadores no VirtualBox.
  • A menos que você tenha pelo menos 3 núcleos independentes que você usará no ambiente guest, não há vantagem em termos de desempenho no Windows multiprocessador guest no VMWare.

Alguém pode lançar alguma luz sobre por que o kernel do Windows singlethreaded é muito mais rápido do que o do SMP?

    
por Adam Ryczkowski 03.10.2012 / 23:23

2 respostas

2

Tenho notado um desempenho hediondo no virtualbox executando sistemas operacionais de 64 bits e suspeito que o ioapic é a causa e estou prestes a testar sem, no entanto, quero comentar sobre o problema do kernel do SMP.

No meu laptop eu já tinha um processador de núcleo único, eu substituí-lo com um processador dual core que era da mesma geração e velocidade de clock mesmo, as únicas diferenças foram melhores recursos de economia de energia e um maior tamanho de cache L2, relógios etc descansar todos iguais. Eu descobri depois que a troca de cpu no antigo desempenho do kernel do windows estava ok. Eu então reinstalei o Windows, após a reinstalação de um kernel APIC foi instalado e, de repente, o gerenciador de tarefas relatou maior uso da CPU para as mesmas tarefas, por exemplo. executando o gerenciador de tarefas levou 2% cpu em vez de sub 1%. Além disso, as temperaturas da CPU foram maiores, como se o seu trabalho fosse mais difícil, muito desconcertante, especialmente porque a nova instalação era limpa e anterior tinha coisas como um / v instalado. Eu conclui o mesmo que você que o Windows tem alta sobrecarga multi-processador. O significado de aplicativos baseados em processador único será executado mais lentamente em processadores multi-core.

    
por 03.11.2012 / 12:28
0

link :

"A habilitação do APIC de E / S é necessária para sistemas operacionais convidados de 64 bits , especialmente o Windows Vista; ele também é necessário se você quiser usar mais de uma CPU virtual em uma máquina virtual. No entanto, o suporte de software para APICs de E / S não é confiável em alguns sistemas operacionais diferentes do Windows. Além disso, o uso de um APIC de E / S aumenta ligeiramente a sobrecarga da virtualização e, portanto, diminui o sistema operacional guest um pouco. Aviso Todos os sistemas operacionais Windows que iniciam com o Windows 2000 instalam kernels diferentes dependendo se um APIC de E / S está disponível. Assim como na ACPI, o I / O APIC não deve ser desativado após a instalação de um sistema operacional convidado do Windows. Ativá-lo após a instalação, no entanto, não terá efeito. "

    
por 04.10.2012 / 15:03