Добавлен PT153
У всех наследников типа widget есть такие функции как SetUserData и GetUserData. Хотелось бы иметь такую же функцию для таймеров.
Для этого я использую хеш-таблицу, но они медленные. Я бы создал массив, в качестве индексов используя хендлы таймеров, только хендлы больше, чем индекс ячеек.
Поэтому я хочу создать бинарное дерево, в каждой ячейке которого будет содержаться хендл таймера и UserData. Тогда GetTimerUserData будет состоять из бинарного поиска нужного хендла и вывода соответствующей UserData.
Для этого я использую хеш-таблицу, но они медленные. Я бы создал массив, в качестве индексов используя хендлы таймеров, только хендлы больше, чем индекс ячеек.
Поэтому я хочу создать бинарное дерево, в каждой ячейке которого будет содержаться хендл таймера и UserData. Тогда GetTimerUserData будет состоять из бинарного поиска нужного хендла и вывода соответствующей UserData.
Но будет ли это быстрее, чем использование хеш-таблиц? Если нет, то есть ли ещё способы это реализовать?
Принятый ответ
спойлер - хештаблицы медленнее в сравнении с доступом по массиву. как только ты дописываешь еще пару строк к массиву (т.к. тебе надо вычислить ключ), внезапно хт становится быстрее. так что не мудри
нет ничего быстрее нативок. а каждая строка JASS-кода существенно замедляет работу. Экономия на спичках
нет ничего быстрее нативок. а каждая строка JASS-кода существенно замедляет работу. Экономия на спичках
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Вот пример как передавать локалки в поток таймера ссылка
Отредактирован DracoL1ch
нет ничего быстрее нативок. а каждая строка JASS-кода существенно замедляет работу. Экономия на спичках
Отредактирован PT153
Я думаю, что нет, но суть понял, спасибо.
Структуры помогают только когда ты записываешь в хт индекс структуры, по которому и ищеш данные в массивах.
Для переодик таймера я уже кинул пример как еще можно, там вовсе локалки.
чтобы найти ключ, тебе нужно произвести Х операций поверх GetHandleId()
а доступ к ХТ - 1 операцией
PT153: Хотелось бы это узнать.
Мемхак нужен в самом минимальном исполнении. В статье описано что по чем и как устроено.
Проблем с работоспособностю быть не должно.