вы можете разработать, чтобы использовать другие псевдорежимы общего назначения: t0..t19
bp your-address "r$t1=your-other-address; ba w4 @$t1 /1 \"dd @$t1;gc\""
Нет. Прежде всего, Dictionary
[ОБНОВЛЕНО] использует хеш-код ключей, чтобы найти их во внутренней памяти, а не ключи. И хэш-код является int
. Для int
это просто значение int
, для string
оно должно быть сгенерировано.
Таким образом, использование int
немного немного быстрее.
На самом деле генерация хеш-кода для строки является довольно сложным процессом (фрагмент с использованием Reflector) [ Надеюсь, это не воспринимается как нарушение авторских прав, поскольку это НЕ ]:
fixed (char* str = ((char*) this))
{
char* chPtr = str;
int num = 0x15051505;
int num2 = num;
int* numPtr = (int*) chPtr;
for (int i = this.Length; i > 0; i -= 4)
{
num = (((num << 5) + num) + (num >> 0x1b)) ^ numPtr[0];
if (i <= 2)
{
break;
}
num2 = (((num2 << 5) + num2) + (num2 >> 0x1b)) ^ numPtr[1];
numPtr += 2;
}
return (num + (num2 * 0x5d588b65));
}