Страница 1 из 2

что быстрее работает ...

Добавлено: 2008-06-14 5:21:23
havarz
Всем привет.
Что быстрее работает
echo "blabla" > /file на shell
или
open (file) print blabla close (file)
на Perl, Tcl или еще на чем то.

Re: что быстрее работает ...

Добавлено: 2008-06-14 10:27:12
Alex Keda
а потестить - не судьба чтоли?

Re: что быстрее работает ...

Добавлено: 2008-06-14 13:15:53
havarz
думал, что уже ктонить тестил.
раз нет, будем тестить сами.

Re: что быстрее работает ...

Добавлено: 2008-06-15 7:57:31
zg
да можно не тестить, перл быстрее в любом случае, а ещё быстрее C и буферизированный вывод. Но это будет хоть сколько-то заметно только на гигабайтных объёмах информации.

Re: что быстрее работает ...

Добавлено: 2008-06-15 9:10:03
hizel
если для одного действия то shell быстрее
perl пока проверит, пока откомпилит и только потом выполнит
к тому же perl не входит в основу freebsd ;)

Re: что быстрее работает ...

Добавлено: 2008-06-15 9:17:50
Alex Keda
входит

Re: что быстрее работает ...

Добавлено: 2008-06-15 9:42:57
hizel
зачем оно тогда у мя собиралось?

Код: Выделить всё

se@serv4 ~ >pkg_info | grep perl-5.8
perl-5.8.8_1        Practical Extraction and Report Language

Re: что быстрее работает ...

Добавлено: 2008-06-15 9:44:18
paradox
уже невходит) вырезали гадость из системы

Re: что быстрее работает ...

Добавлено: 2008-06-15 10:00:31
Alex Keda
paradox писал(а):уже невходит) вырезали гадость из системы
входит. тока версия более старая. 5.0

Re: что быстрее работает ...

Добавлено: 2008-06-15 10:07:35
hizel

Код: Выделить всё

se@serv4 /usr/src >find ./ -name 'perl*' -print
./contrib/file/Magdir/perl
./contrib/ipfilter/perl
./contrib/nvi/include/perl_extern.h
./contrib/nvi/perl_api
./contrib/nvi/perl_api/perl.xs
./contrib/nvi/perl_api/perlsfio.c
./contrib/nvi/perl_scripts
./crypto/openssl/crypto/perlasm
./crypto/openssl/util/perlpath.pl

Код: Выделить всё

se@serv4 /usr/src >uname -a
FreeBSD serv4 6.2-RELEASE FreeBSD 6.2-RELEASE #1: Wed Nov 28 10:43:52 MSK 2007     se@serv4:/usr/obj/usr/src/sys/DIMI  i386
ку ку? :cf:

Re: что быстрее работает ...

Добавлено: 2008-06-15 10:50:11
havarz
задача такая:
есть машина на которой кроме shell (сильно порезанный) есть только Tcl.
изменения в систему вносить нельзя (т.е. что-то поставить, добавить, нельзя)
на ней работает демон pppd. Задача.
отслеживать начало и конец ppp сессий, и писать их в лог файл.
я тут накропал вот такой скриптец на Tcl (пришлось по ходу его изучать, хорошо книгу в свое время прикупил)

в аргементе получает ppp интерфейс (например ppp1)

Код: Выделить всё

#!/usr/bin/tclsh

set ndc "841544"

set w [lindex $argv 0]
set w [string index $w end]
set dt [clock format [clock seconds] -format %y%m%d]
set tm [clock format [clock seconds] -format %T]

if [ catch {set pr [exec ps -eo start,command | grep ppp_up | grep -w $w | grep -v grep]}] {
    puts "nothing found"
    exit 0
}
set fid [open /mnt/dom/ppp_log/$dt.log a 0644]
set ss [lindex $pr 0]
set st_s [clock scan "$ss"]
set stp_s [clock scan "$tm"]
if {$stp_s < $st_s} {set dt [clock format [clock scan "$dt -1 day"] -format %y%m%d]}
set total [expr $stp_s - $st_s]
set total [clock format "$total" -format %T]
puts $fid "$dt $ss - $tm $ndc[lindex $pr 4] [lindex $pr 5] $total"
close $fid
exit 0
понятно, что при небольшом кол-ве сессий работать будет, а при увеличении.... хрен.

вот и вопрос. Что лучше
set fid [open file a 0644]
puts "blabla"
close $fid
или
exec [echo "blabla" >> file]

Re: что быстрее работает ...

Добавлено: 2008-06-15 12:01:15
Alex Keda
хе. значит я от жизни отстал.
тогда всё - теепрь могу смело скрипты системные на php писать - последнее преимущество перла ушло.

Re: что быстрее работает ...

Добавлено: 2008-06-15 12:28:17
hizel

Код: Выделить всё

exec [echo "blabla" >> file]
вызов fork и shell будет медленее

хм, ну смотря как посмотреть, perl собирается сразу как только чтонибудь из портов собираешь ;)

Re: что быстрее работает ...

Добавлено: 2008-06-15 12:33:47
Alex Keda
ф топку =)

Re: что быстрее работает ...

Добавлено: 2008-06-15 12:37:23
hizel
perl? :shock:

Re: что быстрее работает ...

Добавлено: 2008-06-15 14:17:54
havarz
забыл добавить, машина работает под Linux

Re: что быстрее работает ...

Добавлено: 2008-06-15 14:59:49
Alex Keda
hizel писал(а):perl? :shock:
точно

Re: что быстрее работает ...

Добавлено: 2008-06-15 15:48:35
havarz
не совсем понятная дискуссия между вами уважаемые (без иронии)
спрашивал в принципе не об этом.
Не я этот сервер подымал, что дали с тем и работать пришлось.
С огромным удовольствием поставил бы на него Perl, но нельзя.

Re: что быстрее работает ...

Добавлено: 2008-06-15 16:16:58
hizel
да это мы отвлеклись :)
конструкция с open естественно быстрее ;)

Re: что быстрее работает ...

Добавлено: 2008-06-15 17:53:45
havarz
Спасибо.

Re: что быстрее работает ...

Добавлено: 2008-06-16 9:33:26
zg
делай на C и ресурсов меньше и траблов

Re: что быстрее работает ...

Добавлено: 2008-06-16 10:49:38
havarz
да млин, с удовольствием сделал бы на С, но там ни компилятора и хейдеров ни хрена ничего нет.
урезаный линь до нельзя. условия жесткие, ни каких бинарников только на shell (порезанном) или Tcl. :(

Re: что быстрее работает ...

Добавлено: 2008-06-16 10:51:14
paradox
параноя в секюрити?

Re: что быстрее работает ...

Добавлено: 2008-06-16 10:54:41
zg
havarz писал(а):да млин, с удовольствием сделал бы на С, но там ни компилятора и хейдеров ни хрена ничего нет.
а зачем он именно там? скомплил на виртуалке и залил по ssh бинарник, если шел есть, значит и ссх есть :roll:

Re: что быстрее работает ...

Добавлено: 2008-06-16 13:26:33
havarz
Немного подробнее про сие творение.
Сервер используется для предоставления услуг телефонии (DECT)
Это промышленное оборудование, поэтому производитель очень ревностно отностся к любому вмешательству в конфигурацию, установку дополнительного ПО и т.д.
На нем поднят также pppd и radius клиент, настроенный на какие-то ихние приблуды. Переконфигурить, допустим на наш radius сервер, мы не можем по изложенным выше причинам. Но предоставить пользователям услугу dialup, мы можем. Вот и возникла мысль, раз ничего нельзя снимать dialup сессии скриптом. Это как нестранно нам позволили.