Ответ
Misha v.3 03.11.2013 05:13
/ 03.11.2013 05:20
$.type[string] добавлен:
1. для общности
2. для скорости
там просто копиру.тся значения столбцов, это гораздо быстрее, чем выполнять код.
добавил возможность написать ^t.hash{$t.name}{$t.value}[$.type[string]] и сравнил.
@USE
debug/Erusage.p
@main[]
$t[^table::create{name value^for[i](1;10000){^#0Aname $i value $i}}]
^Erusage:measure{
# $h[^do{^m1[]}]
# $h[^do{^m2[]}]
$h[^do{^m3[]}]
# $h[^do{^m4[]}]
}[v]
#^dstop[$h]
MS: $v.time<br />
BL: $v.memory_block<br />
KB: $v.memory_kb
@do[jCode][result;i]
^for[i](1;100){$result[$jCode]}
@m1[][result]
$result[^t.hash[name;value][$.type[string]]]
@m2[][result]
$result[^hash::create[^t.menu{$.[$t.name][$t.value]}]]
@m3[][result]
$result[^hash::create[]]
^t.menu{$result.[$t.name][$t.value]}
@m4[][result]
$result[^t.hash{$t.name}{$t.value}[$.type[string]]]
@z[]
1.
MS: 376.022
BL: 35680
KB: 31396
2.
MS: 1101.063
BL: 71396
KB: 62756
3.
MS: 845.048
BL: 44568
KB: 39224
4.
MS: 827.047
BL: 89088
KB: 78276
выводы делай сам (могу прислать exe-шник потестировать другие варианты).
P.S. ключ в виде кода можно указать уже сейчас (надо не забыть добавить это в доку). поэтому сейчас можно сравнить ^t.hash[name;value][$.type[string]] с ^t.hash{$t.name}[value][$.type[string]], чтобы посмотреть насколько всё замедляет junction.
- Несколько предложений, G_Z [M] 01.11.2013 12:19 / 01.11.2013 12:42
- Ответ, MoKo 02.11.2013 22:58
- Ответ, G_Z [M] 29.11.2013 21:11
- Ответ, G_Z [M] 02.11.2013 23:05
- Ответ, Misha v.3 [M] 02.11.2013 02:37 / 02.11.2013 03:09
- Ответ, G_Z [M] 02.11.2013 13:52 / 02.11.2013 14:03
- Ответ, Misha v.3 [M] 02.11.2013 14:08
- Ответ, G_Z [M] 02.11.2013 22:55
- Ответ, Misha v.3 [M] 03.11.2013 05:13 / 03.11.2013 05:20
- Ответ, G_Z [M] 03.11.2013 13:05