| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
moko 23.09.2024 23:13 / 23.09.2024 23:14
Допустим мы решили средствами парсера найти самый длинный тред на форуме. Код позволяет использовать как хеш, так и массив, но с разряженным массивом получается немного быстрее (в среднем ~0.10 секунды против ~0.12 секунды). И это учитывая, что в данном массиве 85% дырок.@main[]
$data[^oSQL.table{SELECT thread_id as id FROM forum_message}]
$tmp[^if($form:hash eq 'yes'){^hash::create[]}{^array::create[]}]
before: ^rusage[]<br/>
^data.menu{
$id[$data.id]
$tmp.$id($tmp.$id+1)
}
after: ^rusage[]<br/>
$top[^hash::create[]]
^tmp.foreach[k;v]{
^if($v>$top.v){
$top[ $.id[$k] $.v[$v] ]
}
}
Longest thread: $top.id with $top.v messages (from ^tmp.count[] threads with ^data.count[rows] messages)
@rusage[]
$cpu[$status:rusage.utime]
^if(def $ocpu)($cpu-$ocpu)[0] gc_memory($status:memory.used/$status:memory.free)
$ocpu[$cpu]