В браузере метрик вы найдете сводные метрики за определенный период времени. За рассматриваемый вами период было 0 вызовов, но на графике было 4 вызова, и общее количество вызовов составило 288. Трудно сказать, на что вы смотрите, может быть, приложите скриншот?
Это сломано на следующий вид:
String s = "123";
Переменная s: это использует собственный размер указателя на текущей архитектуре (который считают 32 битами, если ОС составляет 32 бита, или процесс выполняется под WoW64), так 32 бита или 64 бита соответственно. В этом случае s или на стеке или на en-registered. Необходимо было поместить строковую ссылку в массив затем, что место будет заниматься на "куче".
То, что строка является объектом: 8 байтов служебного разделения 4 байта для таблицы метода, которая удваивается как признак того, что фактический тип объект плюс 4 байта для некоторых служебных битов и syncblock, который позволяет этому использоваться в качестве цели оператора блокировки.
Строка всегда завершается нулевым символом (хотя это - деталь реализации не часть контракта времени выполнения) так, чтобы это могло использоваться непосредственно со строковой пчелой C-стиля, символы являются UTF-16 так два байта за символ в смысле символ использования .NET (детали того, почему является сложным и требует перехода в Unicode, который я опущу).
Строки далее содержат следующее:
Строка может использовать до дважды объема памяти, требуемого на самом деле содержать необходимое владение символьного массива к пути работа StringBuilder
Таким образом сама строка использует между 16 + (2*n) + 2 и 16 + (4*n) + 2 байта на "куче" в зависимости от того, как она была создана.
Сама строка использует по крайней мере 12 + (2*n) + 2 байта на "куче".
Обратите внимание, что в обоих случаях строка может занять немного более фактическое место, чем это использует, в зависимости от какого выравнивания время выполнения осуществляет, это, вероятно, будет не больше, чем IntPtr. Размер.
Это может быть далее осложнено строковым интернированием (где два отдельных экземпляра заканчивают тем, что указали на ту же строку, так как это неизменно), так как Вы должны в теории делить "кучу" наверху (плюс интерн наверху) количеством 'независимых' ссылок на строку.
поскольку больше обсуждения этого смотрит на эту статью. Обратите внимание однако, что эта статья устарела для изменений в 4,0.
Размер самой ссылки будет зависеть от Вашей архитектуры процессора - 4 байта на 32-разрядном, 8 байтов на 64-разрядном.
В зависимости от того, являетесь ли Вы на 32-или 64-разрядной машине, это будет или 32-или 64-разрядный указатель.
Если Вы хотите проверить это в код, звоните:
IntPtr.Size