Главная страница
    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.035 c
2-1139133870
**Сергей**
2006-02-05 13:04
2006.02.19
Пункт в меню


2-1138936625
Silver__Dragon
2006-02-03 06:17
2006.02.19
разделение звука на потоки


15-1138269570
вразлет
2006-01-26 12:59
2006.02.19
Россия против США? Как в старые добрые времена?


15-1138621065
Silica
2006-01-30 14:37
2006.02.19
Кнут


2-1138778461
ASDF234
2006-02-01 10:21
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский