Стоимость isEqualToString: Сравнение числовых - PullRequest
0 голосов
/ 13 февраля 2011

Я работаю над проектом по созданию базовой системы данных для поиска и каталогизации изображений и документов.Одним из объектов в моей модели данных является объект «ключевое слово».Каждый раз, когда я добавляю новое ключевое слово, я сначала хочу сначала запустить все существующие ключевые слова, чтобы убедиться, что они не существуют в текущем контексте.

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

Мне было интересно, если кто-то еще подумал, что какая-то польза может бытьэтот подход или если у кого-то есть идеи получше.

1 Ответ

1 голос
/ 13 февраля 2011

Что вам может пригодиться, так это подходящая хеш-функция для преобразования ваших текстовых строк в (возможно) уникальные числа. (Возможно, вам все равно придется проверить наличие эффектов столкновения.)

Сравнение внутренних чисел в С-коде происходит намного быстрее по нескольким причинам. Это позволяет избежать накладных расходов на диспетчеризацию Objective C. Требуется доступ к меньшему объему памяти. И исполняемый код для каждого сравнения обычно представляет собой просто инструкцию или 3, а не цикл с инкрементами и несколькими точками принятия решения.

...