Pergunta

Estou pensando em algumas coisas relacionadas às informações do tipo de tempo de execução e gostaria de alguns feedback de programadores que trabalham em projetos muito maiores do que eu. É razoável esperar que algum programa tenha mais de 65536 (2^16) tipos definidos pelo usuário (classes e estruturas) em um único projeto? Isso faz não média 65536 instâncias, significa 65536 tipos. Isso importa em prática se um compilador o limitasse a 65536 classes/estruturas em qualquer projeto?

Foi útil?

Solução

Não, porque naquele momento você deve estar desacoplando fortemente projetos. Somente os tipos de 'voltado para o público' precisam interagir entre si. Em seguida, a limitação se torna: máximo de 2^16 tipos por projeto e máximo de 2^16 tipos voltados para o público em todos os projetos.

Outras dicas

Eu consideraria isso uma restrição do meio ambiente. Em alguns tipos de sistemas, são gerados automaticamente. Nessas ocasiões, seria criado um grande número de tipos. Mesmo se estes não estão perto de 65536, por que você deseja impor essa restrição?

Em todas as aplicações/sistemas modernos, a contagem de todos os objetos é restrita apenas pela memória do sistema. É um passo para trás ter qualquer outra restrição.

É uma questão de prioridades. O tempo (e a quantidade de código) gasto na implementação do número "ilimitado" de tipos é justificável no escopo atual do projeto?

Você também gostaria de considerar a manutenção à medida que o projeto/compilador cresce.

Eu diria que casos especiais, como ter uma quantidade obesa de tipos, não justificam levar isso em consideração se você não estiver segmentando isso especificamente. Quem é seu público alvo?

ATUALIZAR:Em alguns casos, você pode realmente se restringir para se tornar mais eficiente em algum outro aspecto (como memória, velocidade de execução etc.), desde que esteja claramente documentado, acho que você deve seguir o que atende às suas necessidades específicas.

Quem disse que o tipo de informação == número de 16 bits?

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