Echo, print, printf: Quem é mais rápido?

You can see this post in english too.

Quem é mais rápido na CPU? Echo, Print ou Printf?

Material de teste:

  • Máquina: HP Pavilion dv6058cl Notebook;
  • Sistema operacional: ArchLinux, arquitetura x86-64;
  • PHP versão 5.3.0
  • Ambiente: Bash, sem X. Sistema de arquivos XFS.
  • Arquivo echo.php:
    <?php for ($i = 0; $i < 100000; $i++) { echo "This is a simple testn"; } ?>
  • Arquivo print.php:
    <?php for ($i = 0; $i < 100000; $i++) { print "This is a simple testn"; } ?>
  • Arquivo printf.php:
    <?php for ($i = 0; $i < 100000; $i++) { printf("This is a simple testn"); } ?>

Método:

  1. Executar cada um dos scripts PHP 100 vezes, armazenando o tempo de execução de cada um:

    for i in `seq 1 100`; do (time php echo.php > o_echo.txt) 2>> t_echo.txt; done;

    for i in `seq 1 100`; do (time php print.php > o_print.txt) 2>> t_print.txt; done;

    for i in `seq 1 100`; do (time php printf.php > o_printf.txt) 2>> t_printf.txt; done;

    Observação: Entre cada teste, o PC foi desligado e religado após 30 segundos;
  2. Considerar apenas a linha de resultado sys do comando time, pois apenas o tempo de CPU importa para este teste;
  3. Ordenar os tempos de execução de cada script, do menor para o maior;
  4. Descartar os 25 primeiros e últimos tempos de execução de cada script;
  5. Plotar a amostragem restante e traçar a linha média de tempo de execução de cada comando.

O resultado? Aqui está:

Gráfico resultante

Conclusão: O teste mostra que o comando print é o mais rápido na necessidade de saída de texto. Os tempos para redirecionar e armazenar a saída de cada arquivo foram contabilizados como sendo da execução do script (possível falha).

Idéias para testes futuros:

  • Strings longas (saída de uma variável NOWDOC ou HEREDOC);
  • Interpolar variáveis numéricas e strings juntas.

About Adriano Laranjeira

Software engineer & developer See more at http://about.me/arglbr
This entry was posted in Português and tagged . Bookmark the permalink.

1 Response to Echo, print, printf: Quem é mais rápido?

  1. Pingback: Adriano Laranjeira » Blog Archive » Echo, print, printf: Who’s the fastest?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s