Комментарии к таблице, динамические элементы управления, C # и asp.net

#c# #asp.net #performance #dynamic

#c# #asp.net #Производительность #динамический

Вопрос:

Представьте таблицу и кнопку для добавления новых строк в таблицу. При каждом нажатии на кнопку в конец таблицы будет вставляться новая строка. Событие кнопки функционирует следующим образом:

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

  • Наконец, при каждом событии page_init я заново создаю таблицу, используя данные внутри datatable. Все работает отлично.

Тем не менее, мне любопытно. Поскольку у меня на странице от 3 до 5 таблиц, и все они хранятся в другом кэше с другой таблицей данных, и все они воссоздаются во время событий цикла страницы, может ли это вызвать какие-либо проблемы в будущем? Кстати, пожалуйста, обратите внимание, что как только пользователь покидает страницу, кэш удаляется.

Я не хотел вставлять сюда весь код, поскольку он немного длинный и может отвлечь людей от прочтения вопроса. Но я могу привести некоторые статистические данные, чтобы вы могли прокомментировать это.

Класс, который я написал, имеет длину 118 строк. В процессе воссоздания таблицы выполняется 3 вложенных цикла for / foreach, но они не такие длинные (среднее время цикла, вероятно, от 5 до 10 для каждого). И, наконец, как упоминалось выше, для повторного создания таблицы используется datatable, который сохраняется в кэше.

Итак, я снова задаю вопрос: код работает идеально, но я хотел бы знать, благоприятно ли для производительности построение такого кода?

Ответ №1:

Это полностью зависит от объема данных в таблице (количество строк / столбцов).

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

Но если это будут тысячи и тысяч записей, вероятно, начнутся проблемы с производительностью.

Редактировать: Напишите скрипт для заполнения базы данных до ожидаемого объема данных в «худшем случае», а затем посмотрите, как это работает.