Объявление переменных с помощью New DataSet vs DataSet - PullRequest
0 голосов
/ 16 апреля 2010

Каково влияние создания переменных с использованием:

Dim ds as New DataSet
ds = GetActualData ()

где GetActualData () также создает новый набор данных и возвращает его?
Неужели исходный пустой DataSet, который был «New», просто остался в куче?

Что если этот код был во многих местах? Повлияет ли это на процесс ASP.NET и вызовет ли его перезапуск раньше?

Ответы [ 2 ]

1 голос
/ 16 апреля 2010

В результате вы создаете больше объектов, чем нужно.

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

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

Это не приведет к более быстрой перезагрузке процесса ASP.NET, поскольку пропускная способность объекта / частота GC не является фактором.

Несмотря на то, что воздействие минимально, код, конечно, не должен создавать эти неиспользуемые объекты. Возможно, более важным, чем производительность, является то, что код на самом деле не соответствует тому, что вы хотите достичь. Каждое маленькое несоответствие делает код труднее поддерживать.

1 голос
/ 16 апреля 2010

Память, выделенная с помощью Dim ds as New DataSet, будет собираться мусором при выполнении GC.Collect().

Проще говоря - когда ds выделяет новую память в методе, на старую память не ссылаются ни на что, и она будет собирать мусор, когда придет время.

...