Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Есть ли разница в памяти dim obj as object VS dim obj as new object?? / 21 сообщений из 21, страница 1 из 1
02.01.2013, 17:13
    #38098789
Alexander_fx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
собственно сабж

class temp
public lst as list of object


class temp2
public lst as new list of object



есть ли разница в расходе памяти ?
...
Рейтинг: 0 / 0
02.01.2013, 17:34
    #38098801
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
Если я правильно понял, это будет на шарпе

Код: c#
1.
List<object> lst;



и

Код: c#
1.
List<object> lst = new List<object>();



В "куче" память выделятся не будет. Хотя... Фиг знает. Микрософт любит по умолчанию выделять память на 10 элементов.

В отличии от

Код: c#
1.
List<object> lst = new List<object>(100);



Когда будет зарезервирована память для 100 объектов.



Alexander_fx,
А есть причина на спичках экономить?
...
Рейтинг: 0 / 0
02.01.2013, 18:01
    #38098817
Alexander_fx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
Cat2,

да приложение изредка достигает лимита по памяти для 32 бит

да и вообще изучаю матчасть
...
Рейтинг: 0 / 0
02.01.2013, 18:03
    #38098819
Alexander_fx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
ну и если сразу создавать лист то не надо дальше по коду isnull лепить
вот и думаю как дорого это удобство стоит
по идее ничего не стоит - а как на самом деле хз
...
Рейтинг: 0 / 0
02.01.2013, 21:06
    #38098904
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
Alexander_fxну и если сразу создавать лист то не надо дальше по коду isnull лепить
Лучше сразу создавать и проверять количество ( Count )
...
Рейтинг: 0 / 0
02.01.2013, 21:08
    #38098907
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
Alexander_fxда приложение изредка достигает лимита по памяти для 32 бит
Лист, вроде до UINT может расти.
...
Рейтинг: 0 / 0
02.01.2013, 21:16
    #38098911
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
Alexander_fxну и если сразу создавать лист то не надо дальше по коду isnull лепить
вот и думаю как дорого это удобство стоит
по идее ничего не стоит - а как на самом деле хз \
забейте, используйте new.
...
Рейтинг: 0 / 0
02.01.2013, 22:04
    #38098932
Пьяный Лох
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
Cat2Если я правильно понял
Нихера ты неправильно понял.
Нихера не понял, но решил ответить.
В следующий раз, когда решишь отвечать, хотя бы RTFM для приличия почитай.
А то ведь форум дети читают.
...
Рейтинг: 0 / 0
02.01.2013, 22:05
    #38098933
Пьяный Лох
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
Alexander_fxесть ли разница в расходе памяти ?
В расходе памяти разницы нет.
В быстродействии - есть.
Мизерерная, но есть.
...
Рейтинг: 0 / 0
02.01.2013, 23:14
    #38098960
Alexander_fx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
Пьяный Лох,

спасибо
с новым годом
...
Рейтинг: 0 / 0
03.01.2013, 11:21
    #38099124
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
Alexander_fxПьяный Лох,

спасибо
с новым годом
Вот. Я написал, что по расходу памяти разницы нет, а "Спасибо" Пьяному Лоху
...
Рейтинг: 0 / 0
03.01.2013, 14:12
    #38099288
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
Cat2Вот. Я написал, что по расходу памяти разницы нет, а "Спасибо" Пьяному Лоху
Потому что ты заблуждаешься, а Пьяный Лох прав.

Alexander_fxclass temp
public lst as list of object

class temp2
public lst as new list of object

есть ли разница в расходе памяти ?
Есть. В первом случае объявляется поле имеющее значение Nothing (null в C#), во втором аналогичное поле сразу инициализируется. Т.к. List<object> является ссылочным типом, то в управляемой куче выделяется под него память. В x86 расходы составят 52 байта = 12 байтов экземпляр класса + 24 байта под list<object> + 16 байтов под object[]. Однако экономить есть смысл только если твой список нужен не всегда. Если он требуется в любом случае, то выигрыша никакого не будет и оба варианта эквивалентны с точки зрения потребления управляемой кучи. При этом не рассматриваем накладные расходы необходимые на проверки было ли уже инициализировано поле.

Также надо знать что инициализация полей класса при их объявлении означает дополнительные накладные расходы если у нас несколько конструкторов т.к. код инициализации подставляется компилятором в каждый конструктор. Это может стать проблемой только при большом кол-ве полей. В большинстве же случае можно спокойно совмещать объявление и инициализацию т.к. это удобнее.

P.S. Почему ты используешь list of object?
...
Рейтинг: 0 / 0
03.01.2013, 15:26
    #38099356
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
bazileПотому что ты заблуждаешься, а Пьяный Лох прав.
Прав в том, что написал

Пьяный ЛохВ расходе памяти разницы нет.

?
...
Рейтинг: 0 / 0
03.01.2013, 16:09
    #38099393
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
Cat2, почему-то проглядел этот его ответ. Тогда вы оба неправы, если только не имели в виду что не будет разницы в итоге т.к. поле все равно будет инициализировано в другом месте.
...
Рейтинг: 0 / 0
03.01.2013, 16:09
    #38099394
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
зачем он пишет "of object" без скобок? там же в синтаксисе даже указано?

в первом случаи ты не вызвал конструктор класса и не создал объект, то есть в памяти нет объекта List, это только указатель, который вернет null
...
Рейтинг: 0 / 0
03.01.2013, 19:58
    #38099558
Alexander_fx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
[quot bazile]Cat2P.S. Почему ты используешь list of object?

не использую
не вводить же в пример третий класс
а так суть одна- ссылочный тип

обьектов очень много - десятки миллионов и бывает что лист пустой - но обращений к листу довольно много и вот и задумался - есть ли смысл везде проверять на null или проще инициализировать при создании а не при добавлении.
...
Рейтинг: 0 / 0
03.01.2013, 20:34
    #38099594
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
Alexander_fxобьектов очень много - десятки миллионов и бывает что лист пустой - но обращений к листу довольно много и вот и задумался - есть ли смысл везде проверять на null или проще инициализировать при создании а не при добавлении.
Выигрыш будет небольшой по сравнению с объемом хранимых данных. Врядли отсюда нужно начинать оптимизацию кол-ва используемой памяти.
...
Рейтинг: 0 / 0
03.01.2013, 20:35
    #38099596
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
Alexander_fxобьектов очень много - десятки миллионов и бывает что лист пустой - но обращений к листу довольно много и вот и задумался - есть ли смысл везде проверять на null или проще инициализировать при создании а не при добавлении.
конечно проще, не в этом месте оптимизация нужна.

Десятки миллионов объектов - в одном списке?
...
Рейтинг: 0 / 0
05.01.2013, 16:10
    #38100579
Alexander_fx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
нет
миллионы обьектов со списком внутри
в списке четверть нет обьектов - и три четверти с обьектами - примерно 3-10 штук
...
Рейтинг: 0 / 0
05.01.2013, 16:32
    #38100588
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
Alexander_fx,
авторМиллионы
Мне Нам осталась одна забава: Пальцы в рот и веселый свист(с)
...
Рейтинг: 0 / 0
05.01.2013, 17:05
    #38100603
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли разница в памяти dim obj as object VS dim obj as new object??
Alexander_fx, запусти программу под профилировщиком и посмотри куда больше всего памяти уходит. Профилировшик встроен в VS. Смотри команду Analyze -> Launch Perfomance Wizard.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Есть ли разница в памяти dim obj as object VS dim obj as new object?? / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]