Число количества Посетителей в WebSite с помощью ASP.NET и C#

Как Jon Skeet говорит, JIT является частью CLR. В основном это - то, что происходит под капотом:

  1. Ваш исходный код компилируется в код байта, знают как общий промежуточный язык (CIL).
  2. Метаданные от каждого класса и каждого методы (и любая вещь: O) включен в заголовок PE получающегося исполняемого файла (быть этим dll или exe).
  3. при создании исполняемого файла, Заголовок PE также включает стандартный bootstrapper, который отвечает за загрузку CLR (Общеязыковая среда выполнения), когда Вы выполняете Вас исполняемый файл.

Теперь, когда Вы выполняетесь:

  1. bootstraper инициализирует CLR (главным образом путем загрузки mscorlib блока) и дает этому команду выполнять блок.
  2. CLR выполняет Вашу основную запись.
  3. Теперь, классы имеют таблицу векторов, которые содержат адреса функций метода, так, чтобы при вызове MyMethod эта таблица искалась, и затем соответствующий вызов к адресу выполняется. На запуск ВСЕ записи для всех таблиц имеют адрес JIT-компилятора.
  4. , Когда вызов к одному из такого метода выполняется, JIT вызывается вместо фактического метода и берет на себя управление. JIT тогда компилирует код CIL в фактический ассемблерный код для appropiate архитектуры.
  5. , Как только код компилируется, JIT входит в таблицу векторов метода и заменяет адрес тем скомпилированного кода, так, чтобы каждый последующий вызов больше не вызывал JIT.
  6. Наконец, JIT обрабатывает выполнение к скомпилированному коду.
  7. , Если Вы называете другой метод, которые не имеют еще быть скомпилированным тогда, возвращаются к 4... и так далее...
7
задан Zhaph - Ben Duguid 2 October 2009 в 09:26
поделиться

2 ответа

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

Кроме того, вы можете использовать следующее, чтобы отображаемое количество всегда составляло минимум 4 символа:

int a;
a = Convert.ToInt32(Application["myCount"]);
Label4.Text = a.ToString("0000");

См. Строки настраиваемого числового формата для получения дополнительной информации.


Отредактируйте, чтобы ответить на комментарий

] Лично я бы рекомендовал использовать базу данных вместо записи в файловую систему, по крайней мере, по следующим причинам:

  1. В зависимости от вашего хоста настройка базы данных может быть намного проще, чем предоставление доступа для записи в вашу файловую систему. .
  2. Использование базы данных позволит вам сохранить ее как int , а не как строку .
  3. При интенсивном трафике вы 'у меня будут проблемы с несколькими потоками, пытающимися открыть текстовый файл для доступа на запись, что вызовет блокировку файла и вызовет узкое место, которое вам не нужно.

Различные ресурсы расскажут вам, как подключиться к базе данных из вашего кода, хорошее место для начала было бы это Как: подключиться к SQL Server и изучить методы в разделе « Какие есть альтернативы » для получения подробной информации о том, как запросить и обновить базу данных.

Каковы альтернативы "для получения подробной информации о том, как запрашивать и обновлять базу данных.

Каковы альтернативы "для получения подробной информации о том, как запрашивать и обновлять базу данных.

7
ответ дан 6 December 2019 в 12:53
поделиться

Обычно вы используете другие инструменты для этой задачи (анализатор веб-журнала).

Поскольку вы сохраняете свое значение в памяти (приложение ["myCount"]), это значение не сохранится после перезапуска сервера. Поэтому вам нужно сохранить его в базе данных

  • текстовом файле
  • независимо от того
1
ответ дан 6 December 2019 в 12:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: