Производительно ли использовать функцию пола вместо функции нижнего регистра для преобразования строки / символа в нижний регистр в kdb? - PullRequest
0 голосов
/ 24 октября 2019

Поскольку обе функции, нижняя (с определенным условием) и нижняя часть, используют один и тот же оператор k внутри, поэтому я попытался использовать функцию этажа вместо нижней функции, чтобы преобразовать строку / символ в нижний регистр, и результаты теста были освещены.
Результаты испытаний ясно показали, что floor является более производительным по сравнению с нижним.

q)\t:10 floor 100000 4#.Q.A
61
q)\t:10 lower 100000 4#.Q.A
941
q)\t:100 lower 100000 4#.Q.A
9421
q)\t:100 floor 100000 4#.Q.A
568
q)\t:10 floor 100000 4#`$'.Q.A
170
q)\t:10 lower 100000 4#`$'.Q.A
1063

Практически, выгодно / оптимально ли использовать функцию floor вместо более низкой функции для преобразования строки / символа в нижний регистр?

1 Ответ

4 голосов
/ 24 октября 2019

lower охватывает больше случаев / сценариев, чем floor, так что это лучший универсал. Например, floor не работает с перечислениями

q)e:`s?`AbC`DEf`gh`I
q)e
`s$`AbC`DEf`gh`I
q)type e
20h
q)lower e
`abc`def`gh`i
q)floor e
'type
  [0]  floor e
       ^

Таким образом, вы не можете использовать пол на исторических / дисковых символах. Однако, если вы знаете, что будете использовать его только для данных в памяти, тогда да, floor будет быстрее, так как не требует всех проверок, которые требуются для более низкого значения

...