O little-endian ainda é mais rápido em processadores Intel ou não importa se eu analise big-endian em intel? [fechadas]

0

Costumava estar em arquiteturas passadas. Ainda é o caso? Estou lendo da rede em buffers de bytes em Java.

Basicamente, os bytes da Intel usando big-endian em vez de little-endian fazem diferença no desempenho? Eu sei que a Intel é little-endian, mas quando você lê em um buffer de byte OS, você pode ler em big endian ou little-endian.

    
por chrisapotek 01.10.2012 / 19:59

1 resposta

1

Você não pode escolher. Os processadores são (com um número muito pequeno de exceções) fixados em seu endianness, então quando você tem dados para manipular, você DEVE colocá-los no formato adequado para o seu CPU. Não é uma escolha e não é um problema de desempenho: é exatamente o que deve ser feito.

A única vez que surge muito é quando serializar os dados. Muitos protocolos de rede comuns foram projetados com representações on-the-wire big-endian. Se você ler esses bytes diretamente na memória de uma CPU Intel, você terá que trocar os bytes para torná-los um pouco endian antes de poder trabalhar com eles. Isso não é grande coisa, e novamente, não é uma escolha - o protocolo de rede é o que é, e você não tem escolha sobre como colocar as coisas no ar se quiser que outros sistemas possam entenda seus pacotes.

    
por 01.10.2012 / 20:10