Pergunta

Como é que a sobrecarga de processamento da função length () na mudança REXX com o comprimento da corda?


Update: eu estou usando:

  • uni-REXX (R) Versão 297t
  • Open-REXX (TM) Copyright (C) iX Corporação 1989-2002. Todos os direitos reservados.
Foi útil?

Solução

A sobrecarga é 0. O comprimento é armazenado em um descritor.

Neil Milsted Autor de uni-REXX (sem brincadeira).

Outras dicas

Ele depende inteiramente da implementação. Você REXX média para OS / 2, REXX para z / VM, REXX para z / OS, ooRexx para Windows, REXX / 400 ou Regina?

Nada nas especificações da linguagem REXX fora do IBM ditar como a função é implementada sob as cobertas, poderia ser O (N) se você digitalizar a corda ou O (1) se o comprimento é armazenado com o lugar string.

Se é realmente importante, melhor para teste com aferição código para ver se o comprimento faz a diferença.

Eu não tenho certeza. Eu escrevi alguns Rexx em meus dias, mas eu nunca tive problemas de desempenho com a função length (). A forma como este escalas é, provavelmente, ainda dependendo da sua implementação do analisador Rexx.

eu ia escrever um script Rexx que os tempos 10.000 chamadas de "length ()" em uma picada de 10 caracteres, em seguida, em uma corda de 100 caracteres, e depois em uma corda de 1000 caracteres.

Traçando as vezes resultando em um gráfico lhe daria uma aproximação sobre como o desempenho diminui.

Dito tudo isto, o meu palpite é que a diminuição de desempenho é, no máximo, linear, como em O (n). (Veja http://en.wikipedia.org/wiki/Big_O_notation )

Ele é específico implementação da linguagem. Foi um longo tempo desde que eu escrevi qualquer REXX agora, na verdade eu escrevi AREXX (a implementação Amiga) e foi há 15 anos. : -)

Você pode escrever sua própria rotina de teste. Gerar seqüências de comprimento crescente e medir o tempo que leva para chegar length () usando um temporizador de alta performance. Se você armazenar os tempos e comprimentos de corda em uma vírgula baseado em arquivo de texto separado tabela que você pode, então, traçar-lo usando gnuplot . E então você verá claramente como ele pode ser expandido.

Edit: eu deveria ter verificado a resposta de Rolf primeira desde que ele escreveu mais ou menos a mesma coisa. : -)

Eu posso falar para as versões de mainframe IBM, a versão clássica Rexx para OS / 2, e qualquer do objeto implementações Rexx. O comprimento é armazenado no descritor de cadeia, assim a sobrecarga é independente do comprimento da corda.

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