LINUX.ORG.RU
ФорумTalks

[наблюдение] bash vs ELF


0

0

Дело из разряда наблюдений:

andrey@silverblood (~/Programs/test)$ cat test_c.c                   
#include <stdio.h>

char line[1000];

int main()
{
 FILE *fp = fopen("test_file", "r");
 while(!feof(fp))
 {
  fgets(line, sizeof(line), fp);
  printf("%s", line);
 }
 fclose(fp);
}
andrey@silverblood (~/Programs/test)$ cat test_bash.sh                 
#!/bin/bash

while read -r line; do
 echo "$line"
done < test_file
andrey@silverblood (~/Programs/test)$ file test_file 
test_file: ISO-8859 English text
andrey@silverblood (~/Programs/test)$ gcc test_c.c -o test_c         
andrey@silverblood (~/Programs/test)$ time ./test_c > /dev/null      

real    0m0.005s
user    0m0.004s
sys     0m0.001s
andrey@silverblood (~/Programs/test)$ time ./test_bash.sh > /dev/null

real    0m0.751s
user    0m0.194s
sys     0m0.050s
andrey@silverblood (~/Programs/test)$ wc -l test_file 
5330 test_file
andrey@silverblood (~/Programs/test)$


т.е. имеем разницу 751 / 5 ~= 150 раз по производительности при обработке текстовых файлов. А ведь некоторые утилиты - это баш-скрипты, которые работают с текстом...

> т.е. имеем разницу 751 / 5 ~= 150 раз по производительности при обработке текстовых файлов. А ведь некоторые утилиты - это баш-скрипты, которые работают с текстом...

А теперь прогони свой "эльф" на файле, в котором встречается строчка в 2000 символов ;)

swizard
()
Ответ на: комментарий от generatorglukoff

А какие в дистрибутивах скрипты на баше занимаются построчной обработкой текстовых файлов?

Lumi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.