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:
- 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; - Considerar apenas a linha de resultado
sys
do comandotime
, pois apenas o tempo de CPU importa para este teste; - Ordenar os tempos de execução de cada script, do menor para o maior;
- Descartar os 25 primeiros e últimos tempos de execução de cada script;
- Plotar a amostragem restante e traçar a linha média de tempo de execução de cada comando.
O resultado? Aqui está:
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:
Pingback: Adriano Laranjeira » Blog Archive » Echo, print, printf: Who’s the fastest?