Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];

Вниз

Управление памятью   Найти похожие ветки 

 
TUser ©   (2006-01-27 18:55) [0]

Почитал тут
http://russian.joelonsoftware.com/Articles/HowMicrosoftLosttheWaronA.html

Заинересовало рассуждение об управлении памятью. Есть две тенденции
(a) все делать самому, сам выделил - сам освобождай
(б) положиться на сборщиков мусора, подсчет ссылок и пр.

Что лучше - какие имхи? С одной стороны, на Паскале или Си, где реализована (не надо про строки и пр.) мысль (а) - ты сам управляешь полностью свой программой. Но и ответственность за ошибки несешь сам. В случае (б) - в скриптовых языках, на джаве и пр, - тебе жить легко. Но ошибки ведь могут быть серьезнее, разве не так?


 
McSimm ©   (2006-01-27 18:59) [1]


> в скриптовых языках, на джаве и пр, - тебе жить легко.

до поры до времени :)


 
Lamer@fools.ua ©   (2006-01-27 19:05) [2]

В разных случаях, по-разному.
Идеальным, IMHO, является сочетание "а" с "б".


 
begin...end ©   (2006-01-27 19:07) [3]

> Но ошибки ведь могут быть серьезнее, разве не так?

Не понял вопроса


 
VictorT ©   (2006-01-27 19:14) [4]

Кстати, вот недавно один товарищь посмотрел кусочек моего исходника (PHP), сделал замечание:
- А почему ты ти не освобождаешь результат и не закриваешь коннект?
Я сказал, что результаты и так сами освобождаются, и коннект сам закрывается.
И кому из нас верить?


 
VictorT ©   (2006-01-27 19:15) [5]

З.Ы. Коннект к базе, имелось в виду, и результат выполнения SQL-запроса к базе.


 
teon   (2006-01-27 19:16) [6]

TUser ©   (27.01.06 18:55)
>Есть две тенденции

- Пообедал. Осталась грязная посуда.
а) помыл вручную, затраты: время
б) отправил в посудомоечную машину, затраты: деньги на покупку машины

- Захотел поужинать.
а) пошел в фастфуд, затраты: наценка над себестоимостью продуктов, обусловленная стремлением фастфуда к безубыточности
б) приготовил ужин самостоятельно, затраты: время на покупку продуктов и готовку

- В стране выборы.
a) не пошел на выборы, в результате победила партия власти, затраты: связаны с отменой льгот
б) пошел на выборы, в результате победила оппозиция, затраты: в виде партийных взносов

Диалектика.


 
TUser ©   (2006-01-27 19:25) [7]

> Диалектика.

Это не диалектика, а все это - рассуждения о предельных издержках из учебника экономики. Так какие издержки для нас предпостительнее?


 
teon   (2006-01-27 19:45) [8]

>Это не диалектика,

Если рассматривать возможность только указанных выходов из описанных ситуаций, то это самая настоящая диалектика.

По теме.
Идеальным было бы совмещение обоих механизмов. Автоматическая сборка мусора хороша на глобальном уровне, когда за часто используемыми в разных местах экземплярами объектов сложно уследить.
Ручное управление памятью эффективно, когда область использования объекта невелика.
Частично, это реализовано в C#, где можно создавать Value-типы в стеке (удаляются при выходе из области видимости), а объекты в куче. В отличии от Java.


 
Mystic ©   (2006-01-27 22:42) [9]

Каждая стратегия имеет свои преимущества и недостатки :) В общем случае, если сборчик мусора справляется с нагрузкой на него, то это благо. СУществуют еще и промежуточные решения: подсчет ссылок (не справляется с циклическими ссылками, weak pointers, и т. д.)


 
Eraser ©   (2006-01-27 22:56) [10]

В небезизвестной статье с RSDN http://rsdn.ru/article/dotnet/GCnet.xml
про сборщик мусора в NET, как раз приведены результаты тестирования сборщика мучора и обычного распределения памяти врукопашную.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.04 c
2-1138963088
pvm
2006-02-03 13:38
2006.02.19
DLL


10-1113893671
e-not
2005-04-19 10:54
2006.02.19
Помогите разобраться с вызовом функции на COM-сервере


1-1137585610
Kot_
2006-01-18 15:00
2006.02.19
Перекодировка ANSI в OEM


1-1137573956
zorik
2006-01-18 11:45
2006.02.19
советы по оптимизации експорта в Excel


15-1138531130
Стыдно
2006-01-29 13:38
2006.02.19
Объясните задачу.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский