#c# #asp.net #performance #dynamic
#c# #asp.net #Производительность #динамический
Вопрос:
Представьте таблицу и кнопку для добавления новых строк в таблицу. При каждом нажатии на кнопку в конец таблицы будет вставляться новая строка. Событие кнопки функционирует следующим образом:
- прежде всего, он указывает ссылочную строку для копирования.
- какие бы элементы управления и текст ни находились внутри этой ссылочной строки, они копируются в datatable. Поскольку datatable не может содержать элементы управления, я преобразую их в строки и сохраняю их таким образом.
-
В конце таблица данных сохраняется в кэше.
-
Наконец, при каждом событии page_init я заново создаю таблицу, используя данные внутри datatable. Все работает отлично.
Тем не менее, мне любопытно. Поскольку у меня на странице от 3 до 5 таблиц, и все они хранятся в другом кэше с другой таблицей данных, и все они воссоздаются во время событий цикла страницы, может ли это вызвать какие-либо проблемы в будущем? Кстати, пожалуйста, обратите внимание, что как только пользователь покидает страницу, кэш удаляется.
Я не хотел вставлять сюда весь код, поскольку он немного длинный и может отвлечь людей от прочтения вопроса. Но я могу привести некоторые статистические данные, чтобы вы могли прокомментировать это.
Класс, который я написал, имеет длину 118 строк. В процессе воссоздания таблицы выполняется 3 вложенных цикла for / foreach, но они не такие длинные (среднее время цикла, вероятно, от 5 до 10 для каждого). И, наконец, как упоминалось выше, для повторного создания таблицы используется datatable, который сохраняется в кэше.
Итак, я снова задаю вопрос: код работает идеально, но я хотел бы знать, благоприятно ли для производительности построение такого кода?
Ответ №1:
Это полностью зависит от объема данных в таблице (количество строк / столбцов).
Если это немного, например, вывести список из 10 пользователей и их логинов и паролей, он будет работать просто отлично, без проблем с производительностью.
Но если это будут тысячи и тысяч записей, вероятно, начнутся проблемы с производительностью.
Редактировать: Напишите скрипт для заполнения базы данных до ожидаемого объема данных в «худшем случае», а затем посмотрите, как это работает.