parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

Oleg 23.03.2009 04:49

Это немного медленно
#!/home/opeg/bin/parser3/parser3.cgi
@auto[]
# задаём переменную с точками, например хеш
$h[
    $.1[
	$.2[hash]
    ]
]
$[h.1.2][string]

# задаём имя переменной в переменной (у меня они хранится в отдельном файлее, но сути это не меняет)
$vName[h.1.2]

@main[]
^for[iTest](0;10){
    $console:line[$iTest]
    ^rusageTest[]
}
$result[]


@rusageTest[]
$repeat(9999)
# Пытаемся воспользоваться
^rusage[]
^for[C1](0;$repeat){}
^rusage[Пустой for]
^rusage[]
^for[C1](0;$repeat){^process{^$$vName}}
^rusage[process]
^rusage[]
^for[C2](0;$repeat){$$vName}
^rusage[вывод динамически определяемой переменной]
^rusage[]
^for[C2](0;$repeat){$vName}
^rusage[вывод переменной]

$result[]


@rusage[comment][v;prefix;message;line;sec;usec]
$v[$status:rusage]
^if(def $comment){
    $usec(^v.tv_usec.double[])
    $sec(^v.tv_sec.double[])

    $sec($sec-$Gsec)
    $usec($usec-$Gusec)
    $t($sec+($usec/1000000))

    $console:line["$t"	"$comment"]
}{
    $Gusec(^v.tv_usec.double[])
    $Gsec(^v.tv_sec.double[])
}
$result[]
Результат
0
"0.00214" "Пустой for"
"0.178387" "process"
"0.02643" "вывод динамически определяемой переменной"
"0.034687" "вывод переменной"
1
"0.002161" "Пустой for"
"0.179549" "process"
"0.027042" "вывод динамически определяемой переменной"
"0.016077" "вывод переменной"
2
"0.002196" "Пустой for"
"0.175249" "process"
"0.027434" "вывод динамически определяемой переменной"
"0.013868" "вывод переменной"
3
"0.004596" "Пустой for"
"0.198447" "process"
"0.025833" "вывод динамически определяемой переменной"
"0.033734" "вывод переменной"
4
"0.002221" "Пустой for"
"0.16833" "process"
"0.0556" "вывод динамически определяемой переменной"
"0.012468" "вывод переменной"
5
"0.002239" "Пустой for"
"0.189377" "process"
"0.025129" "вывод динамически определяемой переменной"
"0.032214" "вывод переменной"
6
"0.002471" "Пустой for"
"0.170778" "process"
"0.026735" "вывод динамически определяемой переменной"
"0.032987" "вывод переменной"
7
"0.002529" "Пустой for"
"0.163835" "process"
"0.027047" "вывод динамически определяемой переменной"
"0.032023" "вывод переменной"
8
"0.002157" "Пустой for"
"0.167592" "process"
"0.025134" "вывод динамически определяемой переменной"
"0.033125" "вывод переменной"
9
"0.002357" "Пустой for"
"0.160895" "process"
"0.025481" "вывод динамически определяемой переменной"
"0.035589" "вывод переменной"
10
"0.002206" "Пустой for"
"0.163478" "process"
"0.042" "вывод динамически определяемой переменной"
"0.012118" "вывод переменной"