Должен ли я сохранить таблицу БД в хэш-карте, чтобы ускорить мою программу - PullRequest
0 голосов
/ 24 августа 2011

У меня есть цикл опроса, который обращается к устройствам, некоторые из устройств связаны друг с другом, и поэтому, когда одно из связанных устройств опрашивается, его состояние должно быть скопировано на другое связанное устройство.

Я пытаюсь ускорить процесс обновления второго связанного устройства.если устройство 4 связано с устройством 5, оно выполняется быстро, но если устройство 5 опрашивается и обнаруживается изменение, оно должно ждать, пока цикл опроса не завершится и не запустится снова.

Моя идея состоит в том, чтобы в рамках опроса проверить, подключено ли устройство, чтобы оно могло быть немедленно обновлено.Информация о том, какие устройства связаны, хранится в базе данных, и выполнение вызова базы данных для каждого опроса значительно замедлит работу системы. Я думаю, что я хотел создать хеш-таблицу таблицы и проверить ее вместо этого.

так вот мои вопросы

  1. сработает ли эта идея?

  2. будет ли хеш-таблица быстрее, чем проверки баз данных?

  3. как часто мне нужно воссоздавать хеш-таблицу, программа будет работать неделями за раз?

  4. это лучший способделая это.Есть ли другие способы ускорить цикл опроса?

1 Ответ

1 голос
/ 24 августа 2011

Используйте хеш-таблицу, если поиск является приоритетным.Хеш-таблицы обеспечивают очень быстрый механизм поиска при поиске по ключу и довольно хороший поиск при поиске по значению. Используйте хеш-таблицу, если хотите иметь возможность удалять определенные элементы (используйте метод Remove). Используйте хеш-таблицу, когда порядок элементовсохраненный не имеет значения для вас.
Не используйте хеш-таблицу, если вам нужны элементы в определенном порядке.Вы не можете полагаться на то, как Hashtable будет сортировать свои элементы. Не используйте хеш-таблицу, если вам нужно вставить элемент в определенном месте. Не используйте хеш-таблицу, если вы хотите хранить несколько ключей с одинаковым значением.Все ключи внутри хеш-таблицы должны быть уникальными.

...