Pergunta

Se nós (cientistas) viermos com uma maneira de representar timestamps numéricos como cartas, reduzindo o número de bytes necessários para representar timestamps, isso significaria uma melhoria na velocidade da Internet como menos dados precisam ser serializados?

Foi útil?

Solução

Se nos restringirmos às 52 letras do alfabeto latino que são comumente usadas em inglês (ou seja, excluímos letras como ï como visto em palavras como naïve ), Então precisamos de 6 bits para codificar cada letra.

No entanto, em 6 bits, podemos codificar 64 números diferentes.

Isso significa que nossa codificação usando letras é de apenas 81,25% tão densa quanto a codificação usando números.

Esta é, na verdade, a melhor caso cenário. A maioria dos protocolos é orientada a octeto, por isso temos que preencher nossa representação para um limite de octetos completos. Isso significa que uma única carta será codificada em 8 bits. Uma única letra pode expressar 52 timestamps, mas 8 bits podem expressar 256 números.

Poderíamos tentar encontrar um alfabeto com 64 letras (ou ainda melhor 256 letras), então a representação usando letras seria tão boa quanto a representação usando números ... mas por que passar por todos os problemas de representar timestamps (que, depois Todos, são números) como letras, então no outro lado da transmissão, voltem-os para números novamente quando simplesmente representá-los como números é no pior caso tão eficiente quanto ao usar letras e no O melhor e médio do caso é significativamente mais eficiente?

Afinal, os computadores e redes só podem processar e transportar números, então seja qual for a representação usando letras que você encontre, você terá que representar que representação usando números novamente, e esta representação não pode ser mais eficiente do que o original.

Basicamente, você começa com um timestamp, que é um número, você precisa terminar com um registro de data e hora na outra extremidade, que é um número, e a rede só pode transportar números.

Sua proposta é assim:

    .
  1. codifique o número como letras
  2. codifique as letras como um número
  3. transmite o número
  4. decodifica o número como letras
  5. decodifica a letra como um número
  6. Considerando que o que estamos fazendo hoje é:

      .
    1. transmite o número
    2. o que é mais eficiente.

Outras dicas

Não, porque já sabemos representar timestamps (ou quaisquer outros dados) de várias maneiras: em binário, em Hex, no Base64.Provavelmente apenas uma fracção minúscula de todos os dados da Internet são timestamps, então reduzindo o número de bytes usados para transmitir timestamps fará apenas uma diferença de minúscula na velocidade geral da Internet.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a cs.stackexchange
scroll top