parser

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

 

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

память...

Temp 10.02.2004 11:09

Тут посмотрел класс htpasswd вариант с хешем, написанный egr, и на глаз смутило излишние сущности, при построение хеша из таблица, формируется хеш: каждый первичный хеш имеет два вторичных, хотя для этой задачи хватило бы просто хеша $.логин[пароль] ...

Создал этим классом файл на 1500 паролей, переписал конструктор
@init[sFileName][lHtpass]
$_sFileName[$sFileName]
^try{
	$lHtpass[^file::load[text;$sFileName]]
	$lHtpass[^lHtpass.text.match[\n][g]{^#0A}]
	$lHtpass[^table::create{login	password^#0A^lHtpass.match[:][g]{	}}]
}{
	^if($exception.type eq file.missing
		|| $exception.type eq parser.runtime
	){
		$exception.handled(1)
		$lHtpass[^table::create{login	password}]
	}
}
#$_hPasswd[^lHtpass.hash[login]]
#мой вариант
$_hPasswd[^hash::create[]]
^lHtpass.menu{^_hPasswd.add[$.[$lHtpass.login][ $lHtpass.password]]}
Так вот у меня получилось, что создаваемый хеш у меня больше на 1 Мб, чем у egr.
Отсюда вопрос почему ^table_object.hash[] создает менее ресурсоемкий хеш?
Может после динамического добавления в хеш надо делать сборку мусора?

P.S. А при выполнении процессов время можно сказать одинаковое (у egr меньше)