Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
moko 23.09 23:13 / 23.09 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]